Retour à la liste des articles Articles
10 minutes de lecture

La machine à remonter le temps SQL : Comment les requêtes dévoilent le passé (et prédisent l'avenir)

SQL ne sert pas seulement à récupérer des données, c'est aussi un moyen puissant d'explorer ce qui s'est passé et quand. Que vous suiviez les inscriptions des utilisateurs, les ventes ou l'activité du système, apprendre à travailler avec des données temporelles vous permet de découvrir des modèles, d'analyser des tendances et de prendre des décisions plus intelligentes. Ce guide pour débutants montre comment trier, filtrer et regrouper vos données pour comprendre le passé et préparer l'avenir.

Chaque ensemble de données a une histoire, et le temps en est souvent le personnage principal. Les dates nous indiquent quand un client s'est inscrit, quand une vente a été réalisée ou quand un produit a été expédié. Le temps donne un sens et un contexte aux chiffres bruts. Sans lui, vous pouvez voir ce qui s'est passé, mais pas quand ni à quelle fréquence, et c'est ce qui transforme des données simples en véritables informations.

Imaginez, par exemple, que vous analysiez le trafic d'un site web ou les performances des ventes. Le nombre total de visites ou d'achats peut sembler impressionnant en soi, mais lorsque vous le décomposez par date, vous pouvez voir des tendances : les week-ends sont plus lents, les campagnes entraînent des pics et des tendances saisonnières se dégagent. C'est sur ce type d'informations que les entreprises s'appuient pour prendre de meilleures décisions.

Si vous débutez en SQL, apprendre à travailler avec des données temporelles est l'une des compétences les plus précieuses que vous puissiez acquérir. C'est là que l'analyse commence à devenir réelle. Vous apprendrez à trier les résultats par date, à filtrer les 30 derniers jours ou à comparer l'activité mensuelle, le tout à l'aide de requêtes simples et lisibles.

Si vous débutez, le cours Fonctions SQL standards est un excellent moyen d'apprendre à travailler avec des dates et des heures. Il couvre toutes les bases du filtrage, du formatage et du calcul avec des données temporelles, des compétences que vous utiliserez dans presque toutes les requêtes SQL du monde réel.

Voyons comment SQL vous aide à explorer le passé et comment cela peut vous aider à préparer l'avenir.

Travailler avec des colonnes temporelles en SQL

La plupart des ensembles de données comprennent des colonnes liées au temps, telles que created_at, order_date ou login_time. Ces colonnes vous aident à suivre le moment où les choses se produisent et sont stockées à l'aide de types de données spécifiques.

Voici ceux avec lesquels vous travaillerez le plus souvent :

  • DATE - Stocke uniquement la date du calendrier, comme '2025-10-09'. Cette colonne est idéale lorsque vous n'avez besoin que du jour, et non de l'heure exacte.
  • TIME - Stocke uniquement l'heure, comme '14:33:00'. Utile pour les heures d'ouverture des magasins ou les événements programmés dans la même journée.
  • DATETIME / TIMESTAMP - Stocke à la fois la date et l'heure, comme '2025-10-09 14:33:00'. Ces types sont similaires et souvent utilisés de manière interchangeable en fonction du système de base de données. Utilisez-les lorsque vous devez enregistrer le moment exact où quelque chose s'est produit.

En SQL, les dates et les heures sont écrites dans un format standard afin que la base de données puisse les comprendre. Le format le plus courant est le suivant AAAA-MM-JJ HH:MM:SS. Cela signifie que

  • YYYY = année (par exemple, 2025)
  • MM = mois (par exemple, 10 pour octobre)
  • DD = jour (par exemple, 09)
  • HH:MM:SS = heure au format 24 heures (par exemple, 14:33:00 signifie 14:33 PM)

Par exemple :

  • '2025-10-09' est une date (9 octobre 2025)
  • '14:33:00' est une heure (14h33)
  • '2025-10-09 14:33:00' est une date et une heure complètes

Lorsque vous écrivez des requêtes, vous pouvez utiliser directement ces valeurs, appelées littérales de chaîne, pour filtrer ou comparer des données temporelles.

Même pour les débutants, le fait de savoir comment utiliser ces valeurs permet de filtrer les activités récentes, de trier par heure et de regrouper les résultats par jour ou par heure.

💡 Vous souhaitez vous entraîner avec des données réelles ? Essayez notre Fonctions SQL standards pour apprendre à utiliser les valeurs de date et d'heure dans les requêtes - aucune configuration n'est requise.

Classer vos données par heure

Lorsque vous travaillez avec des données temporelles, il est souvent utile de trier les événements par ordre chronologique, du plus ancien au plus récent ou inversement. SQL facilite cette opération grâce à la clause ORDER BY.

Supposons que vous disposiez d'une table de ventes avec une colonne sale_date. Vous pouvez utiliser ORDER BY pour trier vos résultats en fonction de cette colonne de date et contrôler le sens de la chronologie.

Afficher les événements par ordre chronologique

Pour commencer par le début et afficher les premières ventes, utilisez ORDER BY sale_date ASC:

SELECT *
FROM sales
ORDER BY sale_date ASC;

Cette requête trie les résultats par ordre croissant, en commençant par la date la plus ancienne et en avançant dans le temps.

Exemple de résultat :

sale_idproductamountsale_date
101Laptop950.002025-10-01 09:12:00
102Monitor210.002025-10-03 11:45:00
103Keyboard80.002025-10-07 12:05:00

Cette vue est utile lorsque vous souhaitez retracer la façon dont les choses ont commencé, par exemple en examinant les premières ventes du mois ou les premiers utilisateurs à s'inscrire.

Afficher les enregistrements les plus récents en premier (ordre décroissant)

Pour afficher les ventes les plus récentes en premier, utilisez ORDER BY sale_date DESC:

SELECT *
FROM sales
ORDER BY sale_date DESC;

DESC signifie descendant, c'est-à-dire qu'il est trié de la date la plus récente à la date la plus ancienne.

Exemple de sortie :

sale_idproductamountsale_date
105Headphones120.002025-10-09 14:33:00
104Mouse45.002025-10-08 16:10:00
103Keyboard80.002025-10-07 12:05:00

Cette fonction est particulièrement utile lorsque vous souhaitez savoir ce qui vient de se passer, par exemple les commandes récentes, les inscriptions les plus récentes ou les dernières mises à jour.

Ce que fait ORDER BY

La clause ORDER BY trie les lignes du résultat de votre requête en fonction d'une ou de plusieurs colonnes.

  • Utilisez ASC (ordre croissant) pour aller du plus ancien au plus récent.
  • Utilisez DESC (ordre décroissant) pour aller du plus récent au plus ancien.

Vous pouvez utiliser ORDER BY avec des nombres, du texte et des dates, mais lorsque vous travaillez avec le temps, cela vous aide à comprendre comment les données se développent au fil du temps.

Le tri est l'un des moyens les plus simples de faire en sorte que vos données racontent une histoire.

&#128294 Vous voulez l'essayer vous-même ? Dans notre Fonctions SQL standards vous apprendrez à trier et à filtrer des données à l'aide de véritables requêtes SQL et d'exemples concrets, le tout dans votre navigateur, sans aucune installation.

Filtrer les données du passé

Parfois, vous n'êtes pas intéressé par ce qui se passe maintenant - vous voulez regarder en arrière et analyser l'activité passée. Vous souhaitez peut-être répondre à des questions telles que : "Que s'est-il passé lors de la promotion du mois dernier ?

  • Que s'est-il passé pendant la promotion du mois dernier ?
  • Quel était le trafic au deuxième trimestre de l'année dernière ?
  • À quoi ressemblaient les ventes avant le lancement de notre nouveau produit ?

Avec SQL, vous pouvez facilement filtrer des périodes spécifiques dans le passé en utilisant la clause WHERE et des conditions de date.

Exemple : Filtre sur une période fixe dans le passé

Supposons que vous souhaitiez trouver toutes les ventes réalisées en septembre 2025. Voici comment procéder :

SELECT *
FROM sales
WHERE sale_date >= '2025-09-01'
  AND sale_date < '2025-10-01';

Cette requête vous donne tout ce qui s'est passé entre le 1er septembre et le 1er octobre non compris. Il s'agit d'un modèle SQL courant lors du filtrage par mois entiers.

Vous pouvez ajuster les dates pour vous concentrer sur :

  • une semaine ou un mois spécifique dans le passé
  • Un trimestre ou une année précédente
  • La période précédant un événement connu (par exemple, le lancement d'un produit, une campagne).

Exemple : Filtre pour les activités antérieures à une certaine date

Supposons que vous souhaitiez voir tout ce qui s'est passé avant le 1er août 2025:

SELECT *
FROM sales
WHERE sale_date < '2025-08-01';

Vous obtiendrez ainsi une vue complète des enregistrements historiques antérieurs à une date précise.

Pourquoi cela est-il important ?

Le filtrage des événements passés vous aide à

  • d'analyser les tendances au fil du temps
  • comparer les performances passées et présentes
  • Mesurer l'impact des changements (par exemple, la tarification, les campagnes, les mises à jour de produits).

C'est la base de toute analyse de données historiques.

💡 Vous apprendrez à écrire ce type de filtres temporels dans nos cours. Analyse des évolutions de recettes en SQL cours.

Regrouper les données en fonction du temps pour repérer les tendances

Le filtrage et le tri en fonction du temps sont utiles, mais si vous souhaitez repérer des tendances, vous devez regrouper vos données sur des périodes significatives : par mois, par semaine ou par heure.

Dans les bases de données réelles, les colonnes de temps telles que sale_date sont souvent stockées sous la forme d'horodatages complets, et non de simples dates : 2025-10-07 12:05:00.

Si vous essayez de regrouper les données en fonction de cet horodatage complet, chaque ligne risque de se retrouver dans son propre groupe, car l'heure est différente à la seconde près.

Regroupement par mois

Supposons que vous souhaitiez compter le nombre de ventes réalisées chaque mois. Vous devez extraire uniquement le mois et l'année de l'horodatage. Voici comment procéder :

Dans PostgreSQL :

SELECT DATE_TRUNC('month', sale_date) AS month,
       COUNT(*) AS total_sales
FROM sales
GROUP BY DATE_TRUNC('month', sale_date)
ORDER BY month;

Dans MySQL :

SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month,
       COUNT(*) AS total_sales
FROM sales
GROUP BY DATE_FORMAT(sale_date, '%Y-%m')
ORDER BY month;

Exemple de sortie :

monthtotal_sales
2025-07310
2025-08420
2025-09380

Vous obtiendrez ainsi une image beaucoup plus claire de l'évolution des ventes au fil du temps, mois par mois, sans être submergé par trop de détails.

Pourquoi c'est important

Le regroupement par mois (ou par semaine, ou par heure) vous permet de

  • suivre les tendances dans le temps
  • Comparer les performances d'une période à l'autre
  • Identifier les points hauts et bas de l'activité
  • Préparer les données pour les graphiques et les rapports

Vous utiliserez constamment cette technique dans le cadre de la création de rapports et de tableaux de bord dans le monde réel.

? ? Vous voulez vous entraîner à faire des requêtes réelles comme celle-ci ? Notre cours Analyse des évolutions de recettes en SQL vous montre comment grouper par intervalles de temps et creuser dans les données réelles de l'entreprise pour repérer des modèles.

Où cela mène-t-il ? Prédire les tendances

C'est là que les choses deviennent intéressantes. Lorsque vous commencez à remarquer des schémas dans vos données historiques, comme un pic hebdomadaire dans les inscriptions d'utilisateurs ou des changements saisonniers dans les achats, vous ne vous contentez plus de rapporter le passé. Vous commencez à prédire ce qui pourrait se produire ensuite.

C'est le début de l'analyse des tendances. Et si des prévisions plus approfondies impliquent généralement des outils de BI ou des langages de programmation tels que Python, tout commence par de solides requêtes SQL.

Plus vous apprendrez à travailler avec des données temporelles, plus vous serez confiant dans votre analyse.

Explorer le passé (et l'avenir) avec SQL

SQL vous donne plus qu'un accès aux données, il vous donne une ligne de temps. Vous pouvez revenir sur ce qui s'est passé hier, le mois dernier ou l'année dernière. Vous pouvez regrouper les événements, repérer les tendances et même commencer à prédire ce qui va se passer.

Et le plus beau, c'est que vous n'avez pas besoin de machine à remonter le temps. Vous n'avez pas besoin d'une machine à remonter le temps, mais seulement de quelques requêtes bien rédigées.

Si vous êtes prêt à mettre en pratique ces compétences, LearnSQL.fr propose des cours interactifs qui vous guident pas à pas dans l'utilisation des requêtes temporelles :

  • Fonctions SQL standards - Apprenez à travailler avec des dates, des heures, du texte et des nombres à l'aide de fonctions SQL intégrées, parfaites pour manipuler et analyser des données temporelles.
  • Analyse des évolutions de recettes en SQL - Découvrez comment calculer les changements d'un mois à l'autre, les taux de croissance et les revenus cumulés en utilisant des données commerciales réelles.
  • Analyse du comportement des clients en SQL - Analysez le comportement des utilisateurs au fil du temps - des premiers achats à l'activité à long terme - et découvrez des informations qui vous permettront de prendre des décisions plus avisées.

Tous les cours sont conviviaux pour les débutants, basés sur un navigateur et conçus pour vous aider à appliquer SQL dans des scénarios du monde réel - aucune installation n'est requise.

Prêt à explorer le passé (et peut-être même à prédire l'avenir) ?