Exercice 35 / 60

Date functions

ConsigneAffiche le nom et la date d'inscription des etudiants inscrits dans les 30 jours qui précèdent la DERNIÈRE inscription enregistrée dans la table. Retrouve cette dernière date avec une sous-requête, (SELECT MAX(date_inscription) FROM etudiants), puis retranche-lui INTERVAL '30 days'. On ne part pas de CURRENT_DATE ici : les inscriptions de cette table s'arrêtent en 2024, une fenêtre calée sur aujourd'hui ne rendrait aucune ligne. Colonnes : nom, date_inscription.

📖 Cours

PostgreSQL manipule les dates avec current_date (aujourd'hui) et les interval pour ajouter/retrancher du temps. Syntaxe : current_date - interval '30 days'

CURRENT_DATE moins un INTERVAL recule sur la ligne du temps, et la période retenue est tout ce qui suit ce point
CURRENT_DATE moins un INTERVAL recule sur la ligne du temps, et la période retenue est tout ce qui suit ce point

Exemple (table commandes) :

SELECT id, date_commande FROM commandesWHERE date_commande >= CURRENT_DATE - INTERVAL '7 days';-> les commandes des 7 derniers jours

Ce point de départ n'est pas forcément aujourd'hui. Sur des données figées, une fenêtre calée sur current_date finit par ne plus rien contenir : la table etudiants s'arrête au 01/09/2024, donc current_date - interval '30 days' n'y trouve plus personne. On recule alors depuis la dernière date de la table, (select max(date_inscription) from etudiants), et l'arithmétique d'interval reste exactement la même. C'est ce que demande l'exercice.

Autres : now() (date + heure), age(date) (duree écoulée).

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →