カテゴリ:

日付と時刻の関数

ADD_MONTHS

指定された月数を日付またはタイムスタンプに加算または減算し、月末情報を保持します。

構文

ADD_MONTHS( <date_or_timestamp_expr> , <num_months_expr> )

引数

必須:

日付またはタイムスタンプ式

これは、指定した月数を追加する日付またはタイムスタンプの式です。

月数式

これは、追加する月数です。これは整数である必要があります。正または負の場合があります。値が整数以外の数値(例えば、 FLOAT)の場合、値は最も近い整数に四捨五入されます。

戻り値

返される値のデータ型は、最初のパラメーターのデータ型と同じです。例えば、入力が DATE の場合、出力は DATE です。入力が TIMESTAMP_NTZ の場合、出力は TIMESTAMP_NTZ です。

使用上の注意

  • ADD_MONTHS は、 MONTH コンポーネントで使用される DATEADD とは少し異なる結果を返します。

    • ADD_MONTHS と DATEADD の両方で、結果の月の日数が元の日より少ない場合、月の結果の日は、結果の月の最後の日です。

    • ADD_MONTHS の場合のみ、元の日が月の最後の日である場合、結果の月の日は、結果の月の最後の日になります。

  • 月数式 は、それぞれ月を加算または減算する正または負の整数です。

日付に2か月を追加し、タイムゾーンのないタイムスタンプに日付をキャストします。

SELECT ADD_MONTHS('2016-05-15'::timestamp_ntz, 2) AS RESULT;
+-------------------------+
| RESULT                  |
|-------------------------|
| 2016-07-15 00:00:00.000 |
+-------------------------+

月末情報の保存方法を次に示します。

  • 2016年2月の最終日(うるう年)に1か月を追加します。

  • 2016年5月の最終日から1か月を差し引きます。

    SELECT ADD_MONTHS('2016-02-29'::date, 1) AS RESULT;
    +------------+
    | RESULT     |
    |------------|
    | 2016-03-31 |
    +------------+
    
    SELECT ADD_MONTHS('2016-05-31'::date, -1) AS RESULT;
    +------------+
    | RESULT     |
    |------------|
    | 2016-04-30 |
    +------------+