Я столкнулся со странным сценарием при сравнении дат в 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?