Les fonctions SQL de manipulation de date

Do you have difficulties understanding French courses? visit our English version Click here

Les fonctions SQL de manipulation de date

En SQL, les dates sont compliquées pour les débutants, car lors de l'utilisation d'une base de données, le format de la date dans le tableau doit être apparié avec la date d'entrée pour pouvoir l'insérer.

Dans divers scénarios au lieu de la Date, DateTime(l'heure est également impliquée avec la date) est utilisé.

Dans ce cours, nous allons parler de différentes fonctions de date par défaut dans MySQLl.

La table échantillon - Conges
+------+------------+------------+-------------------+-----+
| Id_c | Date_debut | Date_fin   | Raison            | Emp |
+------+------------+------------+-------------------+-----+
|    1 | 2019-02-01 | 2019-02-15 | Voyage            |   1 |
|    2 | 2019-05-20 | 2019-06-03 | Maladie d'enfant  |   3 |
|    3 | 2019-09-01 | 2019-09-15 | Rentrée scolaire  |   4 |
|    4 | 2019-09-24 | 2019-09-29 | Voyage            |   2 |
|    5 | 2019-09-19 | 2019-09-24 | Soutenance        |   5 |
+------+------------+------------+-------------------+-----+

NOW()

Renvoie la date et l'heure actuelles sous forme de valeur au format 'AAAA-MM-JJ HH: MM: SS' ou YYYYMMDDHHMMSS, selon que la fonction est utilisée dans un contexte de chaîne ou numérique. La valeur est exprimée dans le fuseau horaire actuel.

Exemple :
                                SELECT NOW();
                            
+---------------------+
| NOW()               |
+---------------------+
| 2019-09-24 13:48:18 |
+---------------------+

CURDATE()

Renvoie la date actuelle sous forme de valeur au format 'AAAA-MM-JJ' ou AAAAMMMJJ, selon que la fonction est utilisée dans un contexte de chaîne ou numérique.

Exemple :
                                SELECT CURDATE();
                            
+------------+
| CURDATE()  |
+------------+
| 2019-09-24 |
+------------+

CURTIME()

Renvoie l'heure actuelle sous forme de valeur au format 'HH: MM: SS' ou HHMMSS, selon que la fonction est utilisée dans un contexte de chaîne ou numérique. La valeur est exprimée dans le fuseau horaire actuel.

Exemple :
                                SELECT CURTIME();
                            
+-----------+
| CURTIME() |
+-----------+
| 13:59:00  |
+-----------+

DATE(date)

Extrait la partie date de la date ou de l'expression DateTime.

Exemple 1 :
                                SELECT DATE('2019-09-24 13:59:03');
                            
+-----------------------------+
| DATE('2019-09-24 13:59:03') |
+-----------------------------+
| 2019-09-24                  |
+-----------------------------+
Exemple 2 :
                                SELECT DATE(Date_debut) FROM Conges;
                            
+------------------+
| DATE(Date_debut) |
+------------------+
| 2019-02-01       |
| 2019-05-20       |
| 2019-09-01       |
| 2019-09-24       |
| 2019-09-19       |
+------------------+

EXTRACT(unit FROM date)

Renvoie une seule partie d'une date/heure.
Plusieurs unités peuvent être envisagées, mais seules certaines sont utilisées, telles que : MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

Exemple :
                                SELECT EXTRACT(DAY FROM Date_debut) as "Jour", EXTRACT(MONTH FROM Date_debut) as "Mois", 
                                EXTRACT(YEAR FROM Date_debut) as "Année" 
                                FROM Conges;
                            
+------+------+--------+
| Jour | Mois | Année  |
+------+------+--------+
|    1 |    2 |   2019 |
|   20 |    5 |   2019 |
|    1 |    9 |   2019 |
|   24 |    9 |   2019 |
|   19 |    9 |   2019 |
+------+------+--------+

DATE_ADD(date, INTERVAL expr type)

Ajoute un intervalle de temps spécifié à une date.
type peut être l'un des types suivants : MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

Exemple 1 :

Ajouter un an à chaque Date_debut

                                SELECT DATE_ADD(Date_debut, INTERVAL 1 YEAR) FROM Conges;
                            
+---------------------------------------+
| DATE_ADD(Date_debut, INTERVAL 1 YEAR) |
+---------------------------------------+
| 2020-02-01                            |
| 2020-05-20                            |
| 2020-09-01                            |
| 2020-09-24                            |
| 2020-09-19                            |
+---------------------------------------+
Exemple 2 :

Ajouter 3 mois à chaque Date_debut

                                SELECT DATE_ADD(Date_debut, INTERVAL 3 MONTH) FROM Conges;
                            
+----------------------------------------+
| DATE_ADD(Date_debut, INTERVAL 3 MONTH) |
+----------------------------------------+
| 2019-05-01                             |
| 2019-08-20                             |
| 2019-12-01                             |
| 2019-12-24                             |
| 2019-12-19                             |
+----------------------------------------+

DATE_SUB(date, INTERVAL expr type)

Soustrait un intervalle de temps spécifié à une date.
type peut être l'un des types suivants : MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

Exemple :

Soustrait 3 mois de Date_Debut

                                SELECT DATE_SUB(Date_debut, INTERVAL 3 MONTH) FROM Conges;
                            
+----------------------------------------+
| DATE_SUB(Date_debut, INTERVAL 3 MONTH) |
+----------------------------------------+
| 2018-11-01                             |
| 2019-02-20                             |
| 2019-06-01                             |
| 2019-06-24                             |
| 2019-06-19                             |
+----------------------------------------+

DATEDIFF(date1, date2);

Renvoie date1-date2 sous forme de valeur en jours d'une date à l'autre. date1 et date2 sont des expressions de date ou de date et heure. Seules les parties de date des valeurs sont utilisées dans le calcul.

Exemple :

La requête suivante indiquera le nombre de jours passés de Date_debut jusqu'à maintenant

                                SELECT DATEDIFF(NOW(), Date_debut) AS "Nombre jours passés" FROM Conges;
                            
+----------------------+
| Nombre jours passés  |
+----------------------+
|                  235 |
|                  127 |
|                   23 |
|                    0 |
|                    5 |
+----------------------+

YEAR(date), MONTH(date) et DAY(date)

Utilisée pour extraire l'année, le mois et le jour respectivement

Exemple :
                                SELECT YEAR(Date_debut), MONTH(Date_debut), DAY(Date_debut) FROM Conges;
                            
+------------------+-------------------+-----------------+
| YEAR(Date_debut) | MONTH(Date_debut) | DAY(Date_debut) |
+------------------+-------------------+-----------------+
|             2019 |                 2 |               1 |
|             2019 |                 5 |              20 |
|             2019 |                 9 |               1 |
|             2019 |                 9 |              24 |
|             2019 |                 9 |              19 |
+------------------+-------------------+-----------------+

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Many people realize their hearts desires late in life. Continue learning, never stop striving and keep your curiosity sharp, and you will never become too old to appreciate life.

0 Commentaire(s)

Pour laisser un commentaire vous devez avoir un compte Inscription, ou Se connecter