Dans MySQL, vous pouvez utiliser le DATE_ADD()
fonction pour ajouter une durée spécifiée à une date. Par exemple, vous pouvez l'utiliser pour ajouter 5 jours à une date donnée. Vous pouvez spécifier si vous souhaitez ajouter des jours, des semaines, des mois, des trimestres, des années, etc. Vous pouvez également ajouter une valeur temporelle, telle que des secondes, des microsecondes, etc.
Cet article contient des exemples qui montrent comment le DATE_ADD()
la fonction fonctionne.
Syntaxe
La syntaxe ressemble à ceci :
DATE_ADD(date,INTERVAL expr unit)
Exemple 1 - Utilisation de base
Voici un exemple d'utilisation.
SELECT DATE_ADD('2020-10-01', INTERVAL 20 DAY) AS Result;
Résultat :
+------------+ | Result | +------------+ | 2020-10-21 | +------------+
Cet exemple ajoute 20 jours à la date fournie par le premier argument.
Exemple 2 – Autres unités de date
Vous pouvez spécifier les unités en jours, semaines, mois, années, etc. Voici quelques exemples.
SELECT '2020-10-01' AS 'Start Date', DATE_ADD('2020-10-01', INTERVAL 2 WEEK) AS '+2 Weeks', DATE_ADD('2020-10-01', INTERVAL 2 MONTH) AS '+2 Months', DATE_ADD('2020-10-01', INTERVAL 2 QUARTER) AS '+2 Quarters', DATE_ADD('2020-10-01', INTERVAL 2 YEAR) AS '+2 Years';
Résultat :
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2020-10-01 | 2020-10-15 | 2020-12-01 | 2021-04-01 | 2022-10-01 | +------------+------------+------------+-------------+------------+
Exemple 3 - Unités de temps
Vous pouvez également ajouter des unités de temps à une valeur de date/heure. Voici un exemple.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL 10 HOUR) AS Result;
Résultat :
+---------------------+ | Result | +---------------------+ | 2020-10-01 11:00:00 | +---------------------+
Et vous pouvez spécifier plusieurs unités en même temps. Par exemple, vous pouvez spécifier des heures et des minutes. Comme ça.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Résultat :
+---------------------+ | Result | +---------------------+ | 2020-10-01 02:30:00 | +---------------------+
Valeurs attendues
Le tableau suivant indique les valeurs unitaires valides et leur format attendu.
unit Valeur | expr attendu Format |
---|---|
MICROSECOND | MICROSECONDES |
DEUXIÈME | SECONDES |
MINUTE | MINUTES |
HEURE | HEURES |
JOUR | JOURS |
SEMAINE | SEMAINES |
MOIS | MOIS |
TRIMESTRE | QUARTS |
ANNÉE | ANNÉES |
SECOND_MICROSECOND | ‘SECONDS.MICROSECONDES’ |
MINUTE_MICROSECOND | ‘MINUTES :SECONDES.MICROSECONDES’ |
MINUTE_SECOND | ‘MINUTES :SECONDES’ |
HOUR_MICROSECOND | ‘HEURES:MINUTES:SECONDES.MICROSECONDES’ |
HOUR_SECOND | ‘HEURES:MINUTES:SECONDES’ |
HOUR_MINUTE | ‘HEURES :MINUTES’ |
DAY_MICROSECOND | ‘JOURS HEURES:MINUTES:SECONDES.MICROSECONDES’ |
DAY_SECOND | ‘JOURS HEURES:MINUTES:SECONDES’ |
DAY_MINUTE | 'JOURS HEURES :MINUTES' |
DAY_HOUR | 'JOURS HEURES' |
YEAR_MONTH | ‘ANNÉES-MOIS’ |
Vous pouvez également utiliser ADDDATE()
fonction pour faire la même chose (c'est un synonyme de DATE_ADD()
fonction en utilisant la même syntaxe). De plus, la syntaxe de ADDDATE()
a une deuxième forme, qui est une méthode abrégée pour ajouter un certain nombre de jours à une date. Pour plus d'informations, consultez les exemples ADDDATE() dans MySQL.