MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment ADD_MONTHS() fonctionne dans MariaDB

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)

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