SQLの新発見
今更なんですが、PostgreSQLだけかどうか確認してもいませんが、一つクリアになったこと。BETWEENでの比較は、両端を含むが、日付とタイムスタンプの場合には例外がある。
SELECT ('2006-10-10 00:00:00' BETWEEN '2006-09-01' AND '2006-10-01');
----------
f
(1 row)
ちなみに
SELECT ('2006-10-01 00:00:00' BETWEEN '2006-09-01 00:00:00' AND '2006-10-01 00:00:00');
----------
t
(1 row)
SELECT ('2006-10-01' BETWEEN '2006-09-01' AND '2006-10-01');
----------
t
(1 row)
なので、タイムスタンプと日付を比較したときの例外なのでしょう。