sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLを使用して前月の最終日を確認するにはどうすればよいですか?

    どちらのソリューションも含む 前月の最終日であり、含める 「今日」のすべて。

    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'を追加します 、前後にキャストしないようにします。

    マニュアルの日付/時刻の種類と機能をご覧ください。



    1. 動的テーブル名を持つテーブルへのUPSERT

    2. CronjobまたはMySQLイベント?

    3. SQLServerの新しいドライバー…知っておくべきこと

    4. MySQL、ユーザーランクを取得