Я зіткнувся з дивним сценарієм при порівнянні між датами в postgresql (версія 9.2.4 у Windows). У таблиці в моєму стовпці сказано update_date з типом 'часова мітка без часового поясу'. Клієнт може шукати це поле лише з датою (наприклад, 2013-05-03) або з датою з часом (тобто: 2013-05-03 12:20:00). Цей стовпець має значення часової позначки для всіх поточних рядків і має однакову частину дати (2013-05-03), але різницю в частині часу.
Коли я порівнюю цю колонку, я отримую різні результати. Як і наступні:
select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-03' -> No results
select * from table where update_date >= '2013-05-03' AND update_date < '2013-05-03' -> No results
select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-04' -> results found
select * from table where update_date >= '2013-05-03' -> results found
Моє запитання - як я можу зробити перший запит можливим, щоб отримати результати, я маю на увазі, чому третій запит працює, але не перший?
Хтось може мені допомогти в цьому? Заздалегідь спасибі.
'2013-05-03'::date
і'1 day'::interval
) PostgreSQL?