MariaDB fournit plusieurs façons d'effectuer des opérations arithmétiques sur les dates. Cela inclut l'ajout ou la soustraction d'un mois (ou de plusieurs mois) à une date donnée.
Voici 6 façons d'ajouter un mois à une date dans MariaDB.
Mise à jour bonus :J'ai maintenant ajouté une 7e façon d'ajouter un mois à une date à la fin de cet article. Donc je suppose que c'est maintenant 7 façons d'ajouter un mois à une date dans MariaDB 🙂
Le DATE_ADD()
Fonction
Le DATE_ADD()
permet d'ajouter un montant à une date. Par exemple, vous pouvez ajouter un nombre de jours, de semaines, de mois, d'années, etc.
Exemple :
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);
Résultat :
+-------------------------------------------------------+| DATE_ADD('2021-05-01', INTERVALLE 1 MOIS) |+----------------------------------------------- --------+| 2021-06-01 |+-------------------------------------------------------+
Si vous devez ajouter plus d'un mois, utilisez simplement ce numéro au lieu de 1
. Cependant, le MONTH
le mot-clé reste non pluriel malgré tout :
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);
Résultat :
+-------------------------------------------------------+| DATE_ADD('2021-05-01', INTERVALLE 2 MOIS) |+----------------------------------------------- --------+| 2021-07-01 |+-------------------------------------------------------+
Il est également possible d'utiliser une autre unité de date/heure avec le numéro approprié de cette unité. Par conséquent, vous pouvez spécifier un certain nombre de jours, par exemple 30 ou 31.
Exemple :
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);
Résultat :
+-------------------------------------------------------+| DATE_ADD('2021-05-01', INTERVALLE 31 JOURS) |+----------------------------------- -------+| 2021-06-01 |+-------------------------------------------------------+Lorsque vous utilisez des jours, le fait que cela corresponde exactement à un mois ou non dépendra du mois en question. Dans l'exemple ci-dessus, j'aurais pu fournir 30 jours, mais cela nous aurait permis de rester dans le même mois :
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Résultat :
+-------------------------------------------------------+| DATE_ADD('2021-05-01', INTERVALLE 30 JOURS) |+----------------------------------------------- -------+| 2021-05-31 |+-------------------------------------------------------+Donc, si vous voulez réellement ajouter un mois, alors le
MONTH
l'unité est beaucoup plus facile que d'essayer de calculer le nombre de jours à ajouter.Le
ADDDATE()
FonctionUne autre façon d'ajouter un mois à une date est d'utiliser le
ADDDATE()
une fonction. Cette fonction a deux syntaxes. Une syntaxe permet d'ajouter un nombre de jours à une date. L'autre syntaxe est la même qu'avec leDATE_ADD()
fonction ci-dessus. Lors de l'utilisation de cette syntaxe,ADDDATE()
est un synonyme deDATE_ADD()
.Exemple :
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);
Résultat :
+-------------------------------------------------------+| ADDATE('2021-05-01', INTERVALLE 1 MOIS) |+----------------------------------------------- -------+| 2021-06-01 |+-------------------------------------------------------+Le
DATE_SUB()
FonctionLe
DATE_SUB()
la fonction vous permet de soustraire un montant à une date. Cependant, si vous fournissez une valeur négative à soustraire, elle finit par être ajoutée à la date.Exemple :
SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);
Résultat :
+------------------------------------------------+| DATE_SUB('2021-05-01', INTERVALLE -1 MOIS) |+-------------------------------- ----------+| 2021-06-01 |+------------------------------------------------------- +Le
SUBDATE()
FonctionLe
SUBDATE()
la fonction est synonyme deDATE_SUB()
lors de l'utilisation de la syntaxe suivante.Exemple :
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);
Résultat :
+-------------------------------------------------------+| SOUS-DATE('2021-05-01', INTERVALLE -1 MOIS) |+--------------------------------- ---------+| 2021-06-01 |+-------------------------------------------------------+Le
+
OpérateurUne autre option consiste à utiliser le
+
opérateur.Le
+
L'opérateur est utilisé pour effectuer l'addition, et nous pouvons l'utiliser sur les dates, avec l'unité de date/heure applicable pour ajouter un certain nombre de mois à notre date.Exemple :
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Résultat :
+---------------------------------------------+| '2021-05-01' + INTERVALLE 1 MOIS |+---------------------------------+| 2021-06-01 |+---------------------------------------------+Le
-
OpérateurLe
-
peut être utilisé pour soustraire un montant d'une date. Mais s'il est utilisé pour soustraire un nombre négatif, le résultat est un montant positif ajouté à la date :SELECT '2021-05-01' - INTERVAL -1 MONTH;
Résultat :
+------------------------------------------------+| '2021-05-01' - INTERVALLE -1 MOIS |+----------------------------------+| 2021-06-01 |+---------------------------------------------+Bonus :le
ADD_MONTHS()
FonctionDepuis que j'ai écrit cet article pour la première fois, une nouvelle fonction a été introduite dans MariaDB spécifiquement pour ajouter des mois à une date.
La fonction s'appelle
ADD_MONTHS()
, et il a été introduit dans MariaDB 10.6.1 pour améliorer la compatibilité Oracle.Donc je suppose que cet article devrait s'appeler 7 façons d'ajouter un mois à une date… 🙂
Exemple :
SELECT ADD_MONTHS('2020-01-01', 3);
Résultat :
+-----------------------------+| ADD_MONTHS('2020-01-01', 3) |+-----------------------------+| 2020-04-01 |+--------------------------------------+Autres unités de date et d'heure
Les exemples ci-dessus ajoutent un certain nombre de mois à la date, mais nous pouvons utiliser les mêmes techniques pour ajouter n'importe quelle unité de date/heure. Voir Unités de date et d'heure MariaDB pour une liste complète des unités de date/heure qui peuvent être utilisées avec les fonctions et l'opérateur ci-dessus.