Arithmétique des dates et INTERVAL
Ajoutez et soustrayez des dates avec INTERVAL, calculez des durées et créez des filtres relatifs comme « les 7 derniers jours ».
Arithmétique des dates et INTERVAL est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Récapitulatif des types de date et d'heure
Quatre types temporels fondamentaux dans PostgreSQL :
DATE— jour calendaire, sans heureTIME— heure de la journéeTIMESTAMP— date et heure, sans fuseauTIMESTAMPTZ— date, heure et fuseau (recommandé pour les événements)
INTERVAL : une durée
INTERVAL est une durée. Vous l'ajoutez à une date ou à un horodatage, ou vous l'en soustrayez :
SELECT NOW() + INTERVAL '1 day';
SELECT NOW() - INTERVAL '30 days';
SELECT NOW() + INTERVAL '3 months 2 weeks';
SELECT INTERVAL '1 hour' + INTERVAL '15 minutes';Unités d'INTERVAL
Vous pouvez utiliser year, month, week, day, hour, minute, second (au singulier ou au pluriel) :
SELECT INTERVAL '2 years 6 months';
SELECT INTERVAL '1 week';
SELECT INTERVAL '90 seconds';Filtres courants sur les dates relatives
Les requêtes incontournables sur les « N derniers jours » :
SELECT * FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days';
SELECT * FROM events
WHERE created_at >= CURRENT_DATE - INTERVAL '1 month';Ajouter des jours à une DATE
PostgreSQL autorise également date + integer pour « ajouter N jours » :
SELECT DATE '2024-01-01' + 30; -- 2024-01-31
SELECT DATE '2024-01-01' - 1; -- 2023-12-31Soustraire deux horodatages
La différence entre deux horodatages est un INTERVAL :
SELECT NOW() - '2024-01-01'::TIMESTAMP;
-- → '125 days 14:30:00'
SELECT EXTRACT(EPOCH FROM (NOW() - created_at))/3600 AS hours_ago
FROM events;AGE : différence lisible
AGE(end, start) renvoie un INTERVAL en années, mois et jours :
SELECT AGE(NOW(), birth_date) AS age_interval
FROM users WHERE id = 1;
SELECT EXTRACT(YEAR FROM AGE(birth_date)) AS age_in_years
FROM users;Ajouter des mois — attention
Ajouter un mois relève de l'arithmétique calendaire. 2024-01-31 + 1 month = 2024-02-29 (date ramenée au dernier jour du mois) :
SELECT DATE '2024-01-31' + INTERVAL '1 month'; -- 2024-02-29
SELECT DATE '2024-03-31' + INTERVAL '1 month'; -- 2024-04-30CURRENT_DATE par rapport à NOW()
Les types renvoyés sont différents — choisissez celui qui convient :
SELECT CURRENT_DATE; -- 2024-03-15 (DATE)
SELECT CURRENT_TIME; -- 14:30:00+02 (TIMETZ)
SELECT CURRENT_TIMESTAMP; -- 2024-03-15 14:30:00+02 (TIMESTAMPTZ)
SELECT NOW(); -- alias for CURRENT_TIMESTAMPConstruire des dates à partir de leurs éléments
Construisez des dates à partir de colonnes entières :
SELECT MAKE_DATE(year, month, day) FROM birthdays;
SELECT MAKE_TIMESTAMP(2024, 3, 15, 14, 30, 0.0);Index sur des expressions de date
Un index sur created_at gère efficacement les requêtes par intervalle. Pour les « événements de mars », un filtre par intervalle est plus rapide qu'une troncature au mois :
-- Index-friendly:
WHERE created_at >= '2024-03-01' AND created_at < '2024-04-01';
-- Less friendly (works only with expression index):
WHERE date_trunc('month', created_at) = '2024-03-01';Récapitulatif
L'arithmétique des dates en SQL est riche et fiable.
INTERVALpour les durées- Ajouter ou soustraire directement
AGEpour les durées lisibles- Les intervalles semi-ouverts sont les plus favorables aux index
Vérification rapide
Quelle expression renvoie les événements des 7 derniers jours ?
Questions Fréquemment Posées
La leçon « Arithmétique des dates et INTERVAL » est-elle gratuite ?
Oui — le texte complet de « Arithmétique des dates et INTERVAL » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Arithmétique des dates et INTERVAL » ?
Ajoutez et soustrayez des dates avec INTERVAL, calculez des durées et créez des filtres relatifs comme « les 7 derniers jours ». Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Arithmétique des dates et INTERVAL » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Arithmétique des dates et INTERVAL
- EXTRACT, DATE_TRUNC, AGE
- Fuseaux horaires : TIMESTAMP contre TIMESTAMPTZ
- Rapports courants sur les dates (MTD, WoW, YoY)