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

SQL:タイムスタンプの日付から1日を引く

    INTERVALを使用します それに入力します。例:

    --yesterday
    SELECT NOW() - INTERVAL '1 DAY';
    
    --Unrelated: PostgreSQL also supports some interesting shortcuts:
    SELECT 
        'yesterday'::TIMESTAMP, 
        'tomorrow'::TIMESTAMP, 
        'allballs'::TIME AS aka_midnight;
    

    次に、次のことを実行できます。

    SELECT 
        org_id,
        count(accounts) AS COUNT,
        ((date_at) - INTERVAL '1 DAY') AS dateat
    FROM 
        sourcetable
    WHERE 
        date_at <= now() - INTERVAL '130 DAYS'
    GROUP BY 
        org_id,
        dateat;
    

    ヒント

    ヒント1

    複数のオペランドを追加できます。 例:今月の最終日を取得する方法

    SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';
    

    ヒント2

    make_intervalを使用して間隔を作成することもできます 関数。実行時に作成する必要がある場合に役立ちます(リテラルを使用しない):

    SELECT make_interval(days => 10 + 2);
    SELECT make_interval(days => 1, hours => 2);
    SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);
    

    詳細:

    日付/時刻の関数と演算子

    datatype-datetime(特別な値)



    1. 同じデータベース内の複数のMySQLテーブルをマッピングするためのHibernate構成ファイル(.cfg.xml)?

    2. SQLの複数の行への複数の挿入

    3. PostgreSQL11の新しいパーティショニング機能を利用する方法

    4. MySQLは特殊文字を含む文字列を選択します