Оператор МЕЖДУ и датами в базе данных Oracle NoSQL, как это сделать?

#oracle-nosql

Вопрос:

Я хочу выполнить запрос в базе данных nosql, используя операцию «МЕЖДУ»? Я хочу сделать что-то вроде этого:

 SELECT * FROM table 
WHERE column_timestamp BETWEEN '2021-01-01'
AND '2021-12-31'
 

Как выполнить этот запрос в базе данных NoSQL? Поддерживается ли МЕЖДУ ?

Ответ №1:

В вашем случае, поскольку ваш столбец, по-видимому, является меткой времени, вам необходимо привести значения меток времени к типу метки ВРЕМЕНИ. Тогда вы просто использовали бы операторы <= и >=.

Будьте осторожны при выполнении запросов только с датами без указания времени. Здесь тестовый случай с использованием <, <=, >=, <=, >>.

 
I've inserted 3 rows :

    2021-12-01T00:00:00Z
    2021-12-31T00:00:00Z
    2021-12-31T23:59:59Z

SELECT * FROM TEST
where date > CAST("2021-12-01" as timestamp) and date < CAST("2021-12-31" as timestamp)

no rows selected

SELECT * FROM TEST
where date >= CAST("2021-12-01" as timestamp) and  date <= CAST("2021-12-31" as timestamp)

2 rows : 2021-12-01T00:00:00Z and 2021-12-31T00:00:00Z

SELECT * FROM TEST
where date >= CAST("2021-12-01T00:00:00" as timestamp)and  date <= CAST("2021-12-31T23:59:59" as timestamp)

3 rows : 2021-12-01T00:00:00Z , 2021-12-31T00:00:00Z and 2021-12-31T23:59:59Z

SELECT * FROM TEST
where date >= CAST("2021-12-01" as timestamp) and  date < CAST("2022-01-01" as timestamp) 

3 rows : 2021-12-01T00:00:00Z , 2021-12-31T00:00:00Z and 2021-12-31T23:59:59Z