どちらのソリューションも含む 前月の最終日であり、含める 「今日」のすべて。
date
の場合 列:
SELECT *
FROM tbl
WHERE my_date BETWEEN date_trunc('month', now())::date - 1
AND now()::date
date
から単純な整数値を減算できます (ただし、timestamp
からではありません )日数を減算します。これが最も簡単で最速の方法です。
timestamp
の場合 列:
SELECT *
FROM tbl
WHERE my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND my_timestamp < date_trunc('day' , now()) + interval '1 day'
<
を使用していることに注意してください 正確な結果を得るための2番目の条件の演算子(〜「明日まで」)。
date
にキャストしません 2番目のクエリで。代わりに、interval '1 day'
を追加します 、前後にキャストしないようにします。
マニュアルの日付/時刻の種類と機能をご覧ください。