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

Unités de date et d'heure dans MySQL (liste complète)

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 |
+---------------------+---------------------+---------------------+