Mam do czynienia z dziwnym scenariuszem podczas porównywania dat w postgresql (wersja 9.2.4 w systemie Windows). Mam kolumnę w tabeli, która mówi „update_date” z typem „timestamp without strefa czasowa”. Klient może wyszukiwać w tym polu tylko według daty (tj: 2013-05-03) lub daty z godziną (tj: 2013-05-03 12:20:00). Ta kolumna ma obecnie wartość znacznika czasu dla wszystkich wierszy i ma tę samą część daty (2013-05-03), ale różnicę w części czasu.
Porównując tę kolumnę, otrzymuję różne wyniki. Podobnie jak następujące:
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
Moje pytanie brzmi: w jaki sposób mogę umożliwić pierwsze zapytanie, aby uzyskać wyniki, mam na myśli, dlaczego trzecie zapytanie działa, ale nie pierwsze?
Czy ktoś może mi w tym pomóc? Z góry dziękuję.
'2013-05-03'::date
i'1 day'::interval
) PostgreSQL jest specyficzna?