🧚 Écoute ! Beekeeper Studio est une interface de base de données rapide, moderne et open source Télécharger
19 février 2024 Par Matthew Rathbone

Introduction

Quand tu travailles avec des bases de données SQL, PostgreSQL compris, savoir manipuler et interroger des dates et des heures est une compétence essentielle. Souvent, les applications ont besoin d’analyses ou de rapports centrés sur les jours de semaine, sans les week-ends. Dans ce tutoriel, on va voir comment sélectionner des enregistrements uniquement sur les jours de semaine, grâce aux fonctions de date et d’heure de PostgreSQL.

Comprendre les dates et les heures dans PostgreSQL

PostgreSQL propose un ensemble complet de fonctions et d’opérateurs pour manipuler les dates et les heures, ce qui facilite les requêtes complexes, comme la sélection de lignes selon le jour de la semaine.

Types de données date/heure

Avant de passer aux requêtes sur les jours de semaine, il est utile de connaître les principaux types de données date/heure de PostgreSQL :

  • DATE : pour les dates (année, mois, jour).
  • TIMESTAMP : pour la date et l’heure, sans fuseau horaire.
  • TIMESTAMPTZ : pour la date et l’heure, avec fuseau horaire.
  • TIME : pour l’heure seule, sans fuseau horaire.
  • TIMETZ : pour l’heure seule, avec fuseau horaire.

La fonction EXTRACT

Une fonction clé pour travailler avec les jours de semaine est EXTRACT. Elle permet d’extraire une partie d’une valeur date/heure, comme le jour de la semaine.

Interroger uniquement les jours de semaine

Pour sélectionner les enregistrements tombant un jour de semaine (du lundi au vendredi), tu peux utiliser la fonction EXTRACT pour obtenir le jour de la semaine d’une date, où dimanche vaut 0 et samedi 6.

Sélection simple des jours de semaine

Voici comment filtrer les lignes pour ne garder que les jours de semaine :

-- Assuming a table 'events' with a 'date' column
SELECT *
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5;

Cette requête sélectionne les lignes de la table events dont le jour de la semaine de la colonne date est compris entre 1 (lundi) et 5 (vendredi) inclus.

Résultat :

id date event_name
1 2024-03-04 Lancement du projet
2 2024-03-05 Réunion d’équipe

Scénarios complexes : jointures et filtrage par jours de semaine

Prenons un exemple plus complexe, où tu dois joindre des tables tout en filtrant par jours de semaine.

-- Assuming another table 'event_details' that references 'events'
SELECT e.*, ed.detail
FROM events e
JOIN event_details ed ON e.id = ed.event_id
WHERE EXTRACT(DOW FROM e.date) BETWEEN 1 AND 5;

Cette requête filtre les événements par jours de semaine et fait aussi une jointure avec la table event_details pour récupérer les données associées.

Résultat :

id date event_name detail
1 2024-03-04 Lancement du projet Réunion de lancement
2 2024-03-05 Réunion d’équipe Bilan mensuel

Cas d’usage

Analyser les heures de travail

Pour les entreprises qui suivent les heures de travail, exclure les week-ends permet de mieux comprendre la productivité et les coûts de main-d’œuvre.

-- Assuming a table 'work_hours' with 'employee_id', 'date', and 'hours_worked'
SELECT employee_id, SUM(hours_worked) AS total_hours
FROM work_hours
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5
GROUP BY employee_id;

Cette requête calcule le total des heures travaillées par chaque employé en semaine.

Résultat :

employee_id total_hours
101 40
102 38

Planification d’événements

Pour les organisateurs d’événements, se concentrer sur les jours de semaine aide à organiser et planifier les événements plus efficacement.

-- Finding available event dates during weekdays
SELECT date
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5
AND date > CURRENT_DATE
ORDER BY date;

Cela permet d’identifier les prochains jours de semaine pour planifier de futurs événements.

Résultat :

date
2024-03-06
2024-03-07

Conclusion

Sélectionner des enregistrements selon les jours de semaine dans PostgreSQL est une technique utile pour l’analyse de données et la logique applicative. En tirant parti des fonctions de date et d’heure de PostgreSQL, notamment EXTRACT, tu peux facilement filtrer tes données selon tes besoins. Que tu analyses l’activité d’une entreprise, planifies des événements ou gères simplement des plannings, savoir interroger les jours de semaine enrichira tes compétences en bases de données.

Entraîne-toi avec ces exemples, explore la documentation de PostgreSQL pour découvrir d’autres fonctions date/heure, et tire encore plus d’enseignements de tes données.

Bonnes requêtes !

Beekeeper Studio est une interface de base de données gratuite & open source

Le meilleur outil de requêtes & éditeur SQL que j’aie jamais utilisé. Il m’offre tout ce dont j’ai besoin pour gérer ma base de données. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio est rapide, intuitif et facile à utiliser. Beekeeper prend en charge plein de bases de données et fonctionne parfaitement sous Windows, Mac et Linux.

La version Linux de Beekeeper est 100% complète : rien de bâclé, aucun compromis sur les fonctionnalités.

Ce que les utilisateurs disent de Beekeeper Studio

★★★★★
« Beekeeper Studio a complètement remplacé mon ancien workflow SQL. C’est rapide, intuitif, et ça rend le travail sur les bases de données à nouveau agréable. »
— Alex K., développeur de bases de données
★★★★★
« J’ai essayé beaucoup d’interfaces de base de données, mais Beekeeper trouve le juste équilibre entre fonctionnalités et simplicité. Ça marche, tout simplement. »
— Sarah M., ingénieure full stack