Данные запроса Couchbase N1QL между двумя днями без учета времени

Я хочу получить данные из корзины Couchbase с N1QL между двумя днями (с 00:00:00.000 даты начала до 23:59:59.999 даты окончания)

Достаточно ли указать даты без времени, например:

SELECT c.*
FROM customer c
WHERE c.start BETWEEN '2017-10-09' AND '2017-10-10'

Или мне нужно указать время явно:

SELECT c.*
FROM customer c
WHERE c.start BETWEEN '2017-10-09T00:00:00.000Z' AND '2017-10-10T23:59:59.999Z')

?


person SzilardD    schedule 23.11.2017    source источник


Ответы (2)


Дата Couchbase в ISO-8601 сопоставима по строкам. Оба запроса в порядке. Подробнее о заказе https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/datefun.html

person vsr    schedule 24.11.2017

Вам нужно использовать представление с функцией карты, которая преобразует дату в массив следующим образом:

function (doc, meta) {
    emit(dateToArray(doc.start), doc);
} 

а затем запросите представление с помощью фильтра startKey и endKey< /а>

Пример с клиентом NodeJS, использующим метод диапазона :

const viewQuery = couchbase.ViewQuery.from(nameOfYourDesignDocument, nameOfYourView);

bucket.query(viewQuery.range([2017,10,9], [2017,10,10]), (error, rows) => {
});
person Troopers    schedule 24.11.2017