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() Fonction
Une 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 le DATE_ADD() fonction ci-dessus. Lors de l'utilisation de cette syntaxe, ADDDATE() est un synonyme de DATE_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() Fonction
Le 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() Fonction
Le SUBDATE() la fonction est synonyme de DATE_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érateur
Une 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érateur
Le - 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() Fonction
Depuis 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.