In MariaDB, ADD_MONTHS()
is een ingebouwde datum- en tijdfunctie die een bepaald aantal maanden aan een datum toevoegt en het resultaat retourneert.
De datum kan een datum-, datetime- of tijdstempelwaarde zijn.
Deze functie is geïntroduceerd in MariaDB 10.6.1 om de compatibiliteit met Oracle te verbeteren. Er zijn minstens 6 andere manieren om maanden toe te voegen aan een datum in MariaDB.
Syntaxis
De syntaxis gaat als volgt:
ADD_MONTHS(date, months)
Waar date
is de datum, en months
is het aantal maanden dat eraan moet worden toegevoegd.
Voorbeeld
Hier is een voorbeeld:
SELECT ADD_MONTHS('2020-01-01', 3);
Resultaat:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Maanden aftrekken
Gebruik een negatieve waarde voor het tweede argument om maanden van een datum af te trekken.
Voorbeeld:
SELECT ADD_MONTHS('2020-01-01', -3);
Resultaat:
+------------------------------+ | ADD_MONTHS('2020-01-01', -3) | +------------------------------+ | 2019-10-01 | +------------------------------+
Numerieke context
De datum kan indien nodig in numerieke vorm worden opgegeven:
SELECT ADD_MONTHS(20200101, 3);
Resultaat:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Ongeldige datums
Als de datum ongeldig is, ADD_MONTHS()
retourneert null
met een waarschuwing:
SELECT ADD_MONTHS('2020-01-51', 3);
Resultaat:
+-----------------------------+ | ADD_MONTHS('2020-01-51', 3) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.003 sec)
Laten we de waarschuwing eens bekijken:
SHOW WARNINGS;
Resultaat:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Nullargumenten
ADD_MONTHS()
retourneert null
als een argument null
is :
SELECT ADD_MONTHS('2020-01-01', null);
Resultaat:
+--------------------------------+ | ADD_MONTHS('2020-01-01', null) | +--------------------------------+ | NULL | +--------------------------------+
Ongeldig aantal argumenten
Het doorgeven van een ongeldig aantal argumenten resulteert in een fout:
SELECT ADD_MONTHS(3);
Resultaat:
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