Voici une liste d'unités pouvant être utilisées dans les fonctions datetime et intervalle de MySQL.
unit Valeur | expr attendu Format |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTH |
QUARTER | QUARTER |
YEAR | YEARS |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTES:SECONDS.MICROSECONDS' |
MINUTE_SECOND | 'MINUTES:SECONDS' |
HOUR_MICROSECOND | 'HOURS:MINUTES:SECONDS.MICROSECONDS' |
HOUR_SECOND | 'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE | 'HOURS:MINUTES' |
DAY_MICROSECOND | 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE | 'DAYS HOURS:MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
YEAR_MONTH | 'YEARS-MONTHS' |
Ces unités peuvent être utilisées avec le +
et -
opérateurs lors de l'exécution d'arithmétiques sur des dates, avec des fonctions telles que ADDDATE()
, SUBDATE()
, DATE_ADD()
, DATE_SUB()
, et EXTRACT()
.
Ils peuvent également être utilisés dans le ON SCHEDULE
clause du CREATE_EVENT()
et ALTER_EVENT()
fonctions.
Les neuf premières unités peuvent être utilisées avec TIMESTAMPADD()
et TIMESTAMPDIFF()
(ces deux fonctions ne prennent pas en charge les unités composites au moment de la rédaction).
Les unités contenant un trait de soulignement sont des unités composées. Ceux-ci se composent de plus d'une unité de temps de base. Ceux-ci peuvent être considérés comme un raccourci pour spécifier plusieurs unités en une seule fois. Chaque unité peut être séparée par n'importe quel caractère de ponctuation.
Exemples
Voici un exemple d'ajout d'une année à une expression datetime :
SELECT '2035-01-01 01:30:45' + INTERVAL 1 YEAR;
Résultat :
2036-01-01 01:30:45
Dans ce cas, nous utilisons le +
opérateur pour effectuer l'addition.
Fonctions DateHeure
Les unités de date et d'heure peuvent être utilisées avec diverses fonctions de date.
Le voici avec le DATE_ADD()
fonction :
SELECT DATE_ADD('2035-01-01 01:30:45', INTERVAL 1 YEAR);
Résultat :
2036-01-01 01:30:45
Unités composites
Voici un exemple qui utilise des unités composées :
SELECT
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";
Résultat :
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+
Les nombres entiers peuvent être séparés par n'importe quel caractère de ponctuation. Par conséquent, nous pourrions remplacer les deux-points par des points pour obtenir le même résultat :
SELECT
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";
Résultat :
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+