Dans MariaDB, ADD_MONTHS()
est une fonction de date et d'heure intégrée qui ajoute un nombre donné de mois à une date et renvoie le résultat.
La date peut être une valeur de date, de date/heure ou d'horodatage.
Cette fonction a été introduite dans MariaDB 10.6.1 pour améliorer la compatibilité Oracle. Il existe au moins 6 autres façons d'ajouter des mois à une date dans MariaDB.
Syntaxe
La syntaxe ressemble à ceci :
ADD_MONTHS(date, months)
Où date
est la date, et months
est le nombre de mois à ajouter.
Exemple
Voici un exemple :
SELECT ADD_MONTHS('2020-01-01', 3);
Résultat :
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Soustraire des mois
Pour soustraire des mois d'une date, utilisez une valeur négative pour le deuxième argument.
Exemple :
SELECT ADD_MONTHS('2020-01-01', -3);
Résultat :
+------------------------------+ | ADD_MONTHS('2020-01-01', -3) | +------------------------------+ | 2019-10-01 | +------------------------------+
Contexte numérique
La date peut être fournie sous forme numérique si nécessaire :
SELECT ADD_MONTHS(20200101, 3);
Résultat :
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Dates invalides
Si la date n'est pas valide, ADD_MONTHS()
renvoie null
avec un avertissement :
SELECT ADD_MONTHS('2020-01-51', 3);
Résultat :
+-----------------------------+ | ADD_MONTHS('2020-01-51', 3) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.003 sec)
Vérifions l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Arguments nuls
ADD_MONTHS()
renvoie null
si un argument est null
:
SELECT ADD_MONTHS('2020-01-01', null);
Résultat :
+--------------------------------+ | ADD_MONTHS('2020-01-01', null) | +--------------------------------+ | NULL | +--------------------------------+
Nombre d'arguments invalide
La transmission d'un nombre d'arguments non valide entraîne une erreur :
SELECT ADD_MONTHS(3);
Résultat :
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