MariaDBでは、ADD_MONTHS() は、指定された月数を日付に追加し、結果を返す組み込みの日付と時刻の関数です。
日付には、日付、日時、またはタイムスタンプの値を指定できます。
この関数は、Oracleの互換性を強化するためにMariaDB10.6.1で導入されました。 MariaDBで日付に月を追加するには、他に少なくとも6つの方法があります。
構文
構文は次のようになります:
ADD_MONTHS(date, months)
date は日付で、months 追加する月数です。
例
次に例を示します:
SELECT ADD_MONTHS('2020-01-01', 3); 結果:
+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01 |
+-----------------------------+ 月を引く
日付から月を引くには、2番目の引数に負の値を使用します。
例:
SELECT ADD_MONTHS('2020-01-01', -3); 結果:
+------------------------------+
| ADD_MONTHS('2020-01-01', -3) |
+------------------------------+
| 2019-10-01 |
+------------------------------+ 数値コンテキスト
必要に応じて、日付を数値形式で提供できます。
SELECT ADD_MONTHS(20200101, 3); 結果:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
無効な日付
日付が無効な場合は、ADD_MONTHS() nullを返します 警告付き:
SELECT ADD_MONTHS('2020-01-51', 3); 結果:
+-----------------------------+
| ADD_MONTHS('2020-01-51', 3) |
+-----------------------------+
| NULL |
+-----------------------------+
1 row in set, 1 warning (0.003 sec) 警告を確認しましょう:
SHOW WARNINGS; 結果:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
ヌル引数
ADD_MONTHS() nullを返します 引数がnullの場合 :
SELECT ADD_MONTHS('2020-01-01', null); 結果:
+--------------------------------+
| ADD_MONTHS('2020-01-01', null) |
+--------------------------------+
| NULL |
+--------------------------------+ 引数の数が無効です
無効な数の引数を渡すと、エラーが発生します:
SELECT ADD_MONTHS(3); 結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1