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.
PostgreSQL manipule les dates avec current_date (aujourd'hui) et les interval pour ajouter/retrancher du temps. Syntaxe : current_date - interval '30 days'
Exemple (table commandes) :
SELECT id, date_commande FROM commandesWHERE date_commande >= CURRENT_DATE - INTERVAL '7 days';-> les commandes des 7 derniers joursCe 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 →