postgresql(Windowsではバージョン9.2.4)の日付を比較すると、奇妙なシナリオに直面していました。テーブルに 'timestamp without timezone'タイプの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
私の質問は、最初のクエリで結果を取得できるようにする方法です。つまり、3番目のクエリは機能しているが、最初のクエリは機能していないのはなぜですか。
誰かがこれを手伝ってくれる?前もって感謝します。
'2013-05-03'::date
および'1 day'::interval
)はPostgreSQL固有ですか?