Dans MariaDB, ADDDATE()
est une fonction de date et d'heure intégrée qui effectue l'arithmétique de la date.
Il permet de modifier une date en précisant la date, l'unité à ajouter et le montant à ajouter. Vous pouvez passer un montant négatif si vous devez soustraire la date d'un certain intervalle.
ADDDATE()
a également une syntaxe de raccourci qui vous permet d'ajouter un nombre donné de jours à la date.
Syntaxe
Le ADDDATE()
la fonction a deux syntaxes.
Syntaxe 1 :
ADDDATE(expr,days)
Où expr
est la date, et days
est le nombre de jours à ajouter.
Syntaxe 2 :
ADDDATE(date,INTERVAL expr unit)
Où date
est la date à modifier, expr
est le montant à ajouter, et unit
est l'unité à ajouter (par exemple seconde, minute, etc.).
Lors de l'utilisation de cette syntaxe, ADDDATE()
est un synonyme de DATE_ADD()
.
Exemple - Syntaxe 1
Voici un exemple d'utilisation de la première syntaxe :
SELECT ADDDATE('2021-05-01', 1);
Résultat :
+-----------------------------------+| ADDATE('2021-05-01', 1) |+--------------------------+| 2021-05-02 |+--------------------------+
Nous pouvons également inclure la partie horaire si nécessaire :
SELECT ADDDATE('2021-05-01 10:00:00', 1);
Résultat :
+-----------------------------------+| ADDATE('2021-05-01 10:00:00', 1) |+------------------------------- ----+| 2021-05-02 10:00:00 |+-----------------------------------+Voici deux manières alternatives de faire la même chose :
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1", '2021-05-01 10:00:00' + INTERVAL 1 DAY AS "Result 2";
Résultat :
+---------------------+---------------------+| Résultat 1 | Résultat 2 |+---------------------+---------------------+| 2021-05-02 10:00:00 | 2021-05-02 10:00:00 |+---------------------+---------------- -----+Exemple - Syntaxe 2
Voici un exemple d'utilisation de la deuxième syntaxe :
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR);
Résultat :
+------------------------------------------------------------ ---+| ADDATE('2021-05-31 10:00:00', INTERVALLE 1 HEURE) |+------------------------ --------------------+| 2021-05-31 11:00:00 |+-------------------------------------------------- -----------+Cette syntaxe nous permet d'ajouter d'autres unités à la date (c'est-à-dire pas seulement les jours). Ici, j'ai ajouté une heure à la date, mais j'aurais tout aussi bien pu ajouter des minutes, des secondes, des mois, des jours, des années, etc. Continuez à lire pour des exemples.
Voici deux méthodes alternatives pour obtenir le même résultat que dans l'exemple ci-dessus :
SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1", '2021-05-31 10:00:00' + INTERVAL 1 HOUR AS "Result 2";
Résultat :
+---------------------+---------------------+| Résultat 1 | Résultat 2 |+---------------------+---------------------+| 2021-05-31 11:00:00 | 2021-05-31 11:00:00 |+---------------------+---------------- -----+Intervalles négatifs
Fournir un intervalle négatif soustrait ce montant de la date.
Exemple :
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR);
Résultat :
+------------------------------------------------------------ ----+| ADDATE('2021-05-31 10:00:00', INTERVALLE -1 HEURE) |+------------------------ ----------------------+| 2021-05-31 09:00:00 |+-------------------------------------------------- ------------+Autres unités
Voici un exemple qui ajoute un intervalle de 1 aux différentes unités de date et d'heure :
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;
Résultat (en utilisant la sortie verticale) :
ANNEE :01-05-2022 10:00:00 MOIS :01-06-2021 10:00:00 JOUR :02-05-2021 10:00:00 HEURE :01-05-2021 11:00 :00 MINUTE :2021-05-01 10:01:00 SECONDE :2021-05-01 10:00:01MICROSECOND :2021-05-01 10:00:00.000001Unités composites
Voici un exemple qui utilise des unités composées :
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH", ADDDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND", ADDDATE('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";
Résultat :
+---------------------+---------------------+-- -------------------+| ANNEE_MOIS | HOUR_SECOND | JOUR_MINUTE |+---------------------+---------------------+--- ------------------+| 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-01 11:30:00 |+---------------------+---------------- -----+---------------------+Dates nulles
Passer
null
pour la date renvoienull
:SELECT ADDDATE(null, INTERVAL 1 YEAR);
Résultat :
+---------------------------------------------+| ADDATE(null, INTERVALLE 1 AN) |+--------------------------------+| NULL |+--------------------------------+Argument manquant
Appel de
ADDDATE()
avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :SELECT ADDDATE();
Résultat :
ERROR 1064 (42000) :vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de ')' à la ligne 1