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