メインコンテンツまでスキップ

add_months

add_months

説明

指定された日付(DATEまたはDATETIME)に、指定された月数を追加します。months_add 関数は似たような機能を提供します。

結果の月の日部分は、date で指定された日と同じままです。ただし、結果の月の日数が指定された日の日数よりも少ない場合、日は結果の月の最後の日になります。例えば、select add_months('2022-01-31', 1); の結果は 2022-02-28 00:00:00 となります。一方、結果の月の日数が指定された日の日数よりも多い場合、結果の日は date と同じになります。例えば、select add_months('2022-02-28', 1); の結果は 2022-03-28 00:00:00 となります。

Oracleとの違い: Oracleでは、date が月の最終日である場合、結果は結果の月の最終日になります。

無効な日付またはNULLの引数が渡された場合、NULLが返されます。

構文

ADD_MONTH(date, months)

パラメーター

  • date: 有効な日付または日時の式である必要があります。
  • months: 追加する月数です。整数である必要があります。正の整数は date に対して月を追加します。負の整数は date から月を引きます。

返り値

DATETIME 値が返されます。日付が存在しない場合、例えば 2020-02-30 のような場合は、NULLが返されます。

日付が DATE 値である場合、それは DATETIME 値に変換されます。

> select add_months('2022-01-01', 2);
+-----------------------------+
| add_months('2022-01-01', 2) |
+-----------------------------+
| 2022-03-01 00:00:00 |
+-----------------------------+

> select add_months('2022-01-01', -5);
+------------------------------+
| add_months('2022-01-01', -5) |
+------------------------------+
| 2021-08-01 00:00:00 |
+------------------------------+

> select add_months('2022-01-31', 1);
+-----------------------------+
| add_months('2022-01-31', 1) |
+-----------------------------+
| 2022-02-28 00:00:00 |
+-----------------------------+

> select add_months('2022-01-31 17:01:02', -2);
+---------------------------------------+
| add_months('2022-01-31 17:01:02', -2) |
+---------------------------------------+
| 2021-11-30 17:01:02 |
+---------------------------------------+

> select add_months('2022-02-28', 1);
+-----------------------------+
| add_months('2022-02-28', 1) |
+-----------------------------+
| 2022-03-28 00:00:00 |
+-----------------------------+