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

PostgreSQLで昨日の日付を取得する方法

    問題:

    PostgreSQLデータベースに昨日の日付(時間なし)を表示したい。

    ソリューション1:

    SELECT current_date - INTEGER '1' AS yesterday_date;
    

    今日が2020-09-24であると仮定すると、結果は次のようになります。

    yesterday_date
    2020-09-23

    ディスカッション:

    昨日の日付を取得するには、今日の日付から1日を引く必要があります。 current_dateを使用する 今日の日付を取得します。 current_dateの最後に角かっこは必要ないことに注意してください 働き。 PostgreSQLでは、INTEGERを使用して、任意の日数を減算または加算できます。 キーワード。ここでは、1日を引く必要があるため、- INTEGER '1'を使用します。 昨日の日付を取得します。この計算の結果には、列タイプがdateのままであることに注意してください。 。

    ソリューション2:

    SELECT (current_date - INTERVAL '1 day')::date AS yesterday_date;
    

    今日が2020-09-24であると仮定すると、結果は次のようになります。

    yesterday_date
    2020-09-23

    ディスカッション:

    current_dateを使用して今日の日付を取得します 。現在の日付から1日の間隔を引く必要があります。これを行うには、INTERVALを使用します キーワード。任意の時間/日付間隔を作成します(ここでは、'1 day' 、PostgreSQLでは24時間と同じです)。 INTERVAL '1 day'を引く 今日の日付から、タイムスタンプとしてフォーマットされた列が作成されるため、dateにキャストする必要があります 。 PostgreSQLでこれを行う最も簡単な方法は、::dateを追加することです。 式全体に(式を括弧で囲むことを忘れないでください)。

    もちろん、同じように簡単に任意の時間間隔で戻ることができます。次に例を示します:

    SELECT (current_date - INTERVAL '3 months 10 days')::date;
    

    INTERVAL 追加することもできます 日付に。だから、明日の日付を取得したい場合は、次の方法があります:

    SELECT (current_date + INTERVAL '1 day')::date AS tomorrow_date;
    

    1. 別の列でグループ化された別の列の最大値に基づいて値を取得します

    2. ORACLEとTRIGGERS(挿入、更新、削除)

    3. Oracleクエリに日付パラメータを追加します

    4. 断続的なODBC接続の失敗