Les fonctions de date et d’heure en SQL permettent d’extraire, de modifier et de formater des valeurs temporelles. Elles sont largement utilisées pour analyser des données chronologiques, filtrer par date, calculer des intervalles et formater les résultats. Cette leçon présente les fonctions les plus courantes avec des exemples basés sur la base Sakila.
CURRENT_DATE — Retourne la date du jour (sans l’heure).Syntaxe :
CURRENT_DATE
Exemple :
SELECT CURRENT_DATE AS aujourd_hui;
Résultat : La date du jour, par exemple : 2025-06-03
CURRENT_TIME — Retourne l’heure actuelle (sans la date).Syntaxe :
CURRENT_TIME
Exemple :
SELECT CURRENT_TIME AS heure_actuelle;
Résultat : L’heure actuelle, par exemple : 14:25:30
CURRENT_TIMESTAMP / NOW() — Retourne la date et l’heure actuelles.Syntaxe :
CURRENT_TIMESTAMP
NOW()
Exemple :
SELECT CURRENT_TIMESTAMP AS date_heure_actuelle;
SELECT NOW() AS date_heure_actuelle;
Résultat : La date et l’heure actuelles, par exemple : 2025-06-03 14:25:30
DATE() — Extrait uniquement la date d’une valeur datetime.Syntaxe :
DATE(datetime)
Exemple :
SELECT DATE(payment_date) AS date_paiement
FROM payment
LIMIT 3;
Résultat : Retourne uniquement la partie date de payment_date.
EXTRACT() — Extrait une partie spécifique d’une date ou d’une heure.Syntaxe :
EXTRACT(partie FROM date)
Exemple :
SELECT EXTRACT(YEAR FROM payment_date) AS année,
EXTRACT(MONTH FROM payment_date) AS mois
FROM payment
LIMIT 3;
Résultat : Retourne l’année et le mois de chaque paiement.
DATE_ADD() / DATE_SUB() — Ajoute ou soustrait un intervalle à une date (MySQL).Syntaxe :
DATE_ADD(date, INTERVAL n unité)
DATE_SUB(date, INTERVAL n unité)
Exemple :
SELECT DATE_ADD(payment_date, INTERVAL 7 DAY) AS date_plus_7j
FROM payment
LIMIT 3;
Résultat : Retourne la date de paiement augmentée de 7 jours.
AGE() — Calcule la différence entre deux dates (PostgreSQL).Syntaxe :
AGE(date1, date2)
Exemple :
SELECT AGE(NOW(), payment_date) AS temps_depuis_paiement
FROM payment
LIMIT 3;
Résultat : Retourne le temps écoulé depuis chaque paiement.
Filtrer par date :
Utilisez WHERE payment_date = CURRENT_DATE pour trouver les paiements du jour.
Extraire des parties de date :
Utilisez EXTRACT(MONTH FROM payment_date) pour analyser les paiements par mois.
Calculer des intervalles :
Utilisez AGE() ou DATE_ADD() pour calculer des durées ou ajouter des jours à une date.
Les fonctions de date et d’heure SQL sont essentielles pour manipuler et analyser des données temporelles. Maîtrisez ces fonctions pour filtrer, formater et calculer des intervalles dans vos requêtes. Pratiquez avec des exemples de la base Sakila pour renforcer vos compétences.