In MariaDB ADD_MONTHS()
ist eine integrierte Datums- und Uhrzeitfunktion, die einem Datum eine bestimmte Anzahl von Monaten hinzufügt und das Ergebnis zurückgibt.
Das Datum kann ein Datums-, Datumszeit- oder Zeitstempelwert sein.
Diese Funktion wurde in MariaDB 10.6.1 eingeführt, um die Oracle-Kompatibilität zu verbessern. Es gibt mindestens 6 weitere Möglichkeiten, Monate zu einem Datum in MariaDB hinzuzufügen.
Syntax
Die Syntax lautet wie folgt:
ADD_MONTHS(date, months)
Wobei date
ist das Datum und months
ist die Anzahl der Monate, die hinzugefügt werden sollen.
Beispiel
Hier ist ein Beispiel:
SELECT ADD_MONTHS('2020-01-01', 3);
Ergebnis:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Subtrahieren Sie Monate
Um Monate von einem Datum abzuziehen, verwenden Sie einen negativen Wert für das zweite Argument.
Beispiel:
SELECT ADD_MONTHS('2020-01-01', -3);
Ergebnis:
+------------------------------+ | ADD_MONTHS('2020-01-01', -3) | +------------------------------+ | 2019-10-01 | +------------------------------+
Numerischer Kontext
Das Datum kann bei Bedarf in numerischer Form angegeben werden:
SELECT ADD_MONTHS(20200101, 3);
Ergebnis:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Ungültige Daten
Wenn das Datum ungültig ist, ADD_MONTHS()
gibt null
zurück mit einer Warnung:
SELECT ADD_MONTHS('2020-01-51', 3);
Ergebnis:
+-----------------------------+ | ADD_MONTHS('2020-01-51', 3) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.003 sec)
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Null-Argumente
ADD_MONTHS()
gibt null
zurück wenn irgendein Argument null
ist :
SELECT ADD_MONTHS('2020-01-01', null);
Ergebnis:
+--------------------------------+ | ADD_MONTHS('2020-01-01', null) | +--------------------------------+ | NULL | +--------------------------------+
Ungültige Anzahl von Argumenten
Das Übergeben einer ungültigen Anzahl von Argumenten führt zu einem Fehler:
SELECT ADD_MONTHS(3);
Ergebnis:
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