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

PostgreSQLの間隔値「2日」を連結する方法

    問題の一部は、間隔の標準SQL式が数値を引用しているが、キーワードは引用していないことです。したがって、注意する必要があります。

    select current_date, current_date + interval '2' day;
    --
    2012-02-21   2012-02-23 00:00:00
    

    PostgreSQLでは、「2日」や「2日」のような引用も機能します。だからあなたは「2」と思うかもしれません|| 「日」は同等ですが、そうではありません。

    select current_date, current_date + interval '2' || ' days';
    --
    2012-02-21   2012-02-21 00:00:02 days
    

    A.H.が言ったように、解決策は結果の文字列を間隔としてキャストすることです。

    2の代わりに変数を使用することもできます。これにより、2012年のカレンダーが生成されます。

    -- 0 to 365 is 366 days; 2012 is a leap year.
    select ('2012-01-01'::date + (n || ' days')::interval)::date calendar_date
    from generate_series(0, 365) n;
    

    日付+間隔はタイムスタンプを返すため、日付までの最終キャストを使用します。



    1. SQL ServerManagementStudioの使用方法について学ぶ

    2. GTIDから従来のレプリケーションにロールバックする

    3. エンティティフレームワークを使用して主キー値を更新します

    4. CAST()を使用してSQLServerで文字列を日付/時刻に変換する方法