#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