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

6 façons d'ajouter un mois à une date dans MariaDB

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.