Méthode détaillée pour calculer les jours ouvrables en tenant compte des jours fériés avec SQL

Nous allons expliquer comment calculer les jours ouvrables en tenant compte des jours fériés avec SQL. Dans la gestion des calendriers d’affaires et l’analyse de données, il est important de connaître avec précision les jours ouvrables. Cet article explique, à partir de la définition de base des jours ouvrables, comment intégrer les données des jours fériés et comment créer des requêtes SQL pour calculer les jours ouvrables avec des exemples concrets. Enfin, en tant qu’exemple d’application utile pour les pratiques professionnelles, nous présentons également des méthodes pour calculer le nombre de jours ouvrables pendant une période donnée ou le prochain jour ouvrable.

Sommaire

Définition des jours ouvrables et points à considérer

Les jours ouvrables désignent les jours où les activités commerciales habituelles ont lieu, à l’exclusion des week-ends et des jours fériés. En suivant le calendrier d’affaires et en tenant compte des jours fériés, il est possible de calculer avec précision les jours ouvrables. En particulier, pour les échéances de projet ou l’organisation des plannings de livraison, il est crucial de connaître avec précision les jours ouvrables. Ensuite, nous expliquerons comment préparer les données des jours fériés nécessaires pour calculer les jours ouvrables.

Préparation des données de jours fériés

Pour intégrer les données de jours fériés dans une base de données SQL, commencez par créer une liste de jours fériés, puis enregistrez-la en tant que table dans la base de données. Voici les étapes à suivre :

Collecte des données de jours fériés

Recherchez les jours fériés de chaque pays ou région et créez une liste dans le format suivant :

2024-01-01, New Year's Day
2024-04-29, Showa Day
...

Création de la table des jours fériés

Créez une table pour stocker les données des jours fériés. Voici un exemple de requête SQL :

CREATE TABLE holidays (
    holiday_date DATE PRIMARY KEY,
    holiday_name VARCHAR(255)
);

Insertion des données de jours fériés

Insérez les données des jours fériés collectées dans la table. Voici un exemple de requête SQL :

INSERT INTO holidays (holiday_date, holiday_name) VALUES
('2024-01-01', 'New Year's Day'),
('2024-04-29', 'Showa Day'),
...

Les données des jours fériés sont maintenant prêtes. Ensuite, nous allons expliquer comment calculer les jours ouvrables en utilisant ces données.

Requêtes SQL pour le calcul des jours ouvrables

Pour calculer les jours ouvrables en tenant compte des jours fériés, créez des requêtes SQL en suivant les étapes ci-dessous :

Requête de base pour déterminer les jours ouvrables

D’abord, créez une requête pour déterminer si une date spécifique est un jour ouvrable. Définissez des conditions pour exclure les week-ends (samedi et dimanche) et les jours fériés.

SELECT 
    date,
    CASE 
        WHEN DAYOFWEEK(date) IN (1, 7) THEN 'weekend'
        WHEN date IN (SELECT holiday_date FROM holidays) THEN 'jour férié'
        ELSE 'jour ouvrable'
    END AS day_type
FROM 
    your_date_table;

Requête pour calculer le nombre de jours ouvrables

Ensuite, créez une requête pour calculer le nombre de jours ouvrables dans une période donnée. Ici, spécifiez une date de début et une date de fin, puis comptez le nombre de jours ouvrables dans cette période.

SELECT 
    COUNT(*) AS business_days
FROM 
    (SELECT 
        date
    FROM 
        your_date_table
    WHERE 
        date BETWEEN '2024-01-01' AND '2024-12-31'
        AND DAYOFWEEK(date) NOT IN (1, 7)
        AND date NOT IN (SELECT holiday_date FROM holidays)
    ) AS subquery;

Requête pour calculer le prochain jour ouvrable

Créez une requête pour calculer le prochain jour ouvrable à partir d’une date donnée.

SELECT 
    MIN(date) AS next_business_day
FROM 
    your_date_table
WHERE 
    date > '2024-05-24'
    AND DAYOFWEEK(date) NOT IN (1, 7)
    AND date NOT IN (SELECT holiday_date FROM holidays);

Vous pouvez maintenant calculer les jours ouvrables en tenant compte des jours fériés. Ensuite, nous présenterons comment adapter ces requêtes à des scénarios spécifiques.

Exemple d’application : calculer le nombre de jours ouvrables pour une période donnée

En calculant le nombre de jours ouvrables sur une période spécifique, vous pouvez planifier précisément les calendriers de projet ou les plans de travail. Voici un exemple concret de requête :

Exemple de requête : calculer le nombre de jours ouvrables pour un mois donné

Par exemple, créez une requête pour calculer le nombre de jours ouvrables pour le mois de mai 2024.

SELECT

    COUNT(*) AS business_days
FROM 
    (SELECT 
        date
    FROM 
        your_date_table
    WHERE 
        date BETWEEN '2024-05-01' AND '2024-05-31'
        AND DAYOFWEEK(date) NOT IN (1, 7)
        AND date NOT IN (SELECT holiday_date FROM holidays)
    ) AS subquery;

Exemple de requête : calculer le nombre de jours ouvrables pour une semaine donnée

Par exemple, créez une requête pour calculer le nombre de jours ouvrables pour la première semaine de mai 2024 (du 1er au 7 mai).

SELECT 
    COUNT(*) AS business_days
FROM 
    (SELECT 
        date
    FROM 
        your_date_table
    WHERE 
        date BETWEEN '2024-05-01' AND '2024-05-07'
        AND DAYOFWEEK(date) NOT IN (1, 7)
        AND date NOT IN (SELECT holiday_date FROM holidays)
    ) AS subquery;

Explication de la requête

Cette requête sélectionne les dates dans la période spécifiée, en excluant les week-ends (samedi et dimanche) ainsi que les jours fériés, et compte le nombre de jours ouvrables. Cela vous permet d’obtenir le nombre exact de jours ouvrables sur une période donnée.

De cette manière, vous pouvez facilement calculer le nombre de jours ouvrables pour une période spécifique en utilisant des requêtes SQL. Ensuite, nous allons montrer comment calculer le prochain jour ouvrable à partir de la date actuelle.

Exemple d’application : calculer le prochain jour ouvrable

Calculer le prochain jour ouvrable à partir de la date actuelle peut être utile pour vérifier les délais de livraison ou pour la planification des tâches. Voici une requête SQL pour trouver le prochain jour ouvrable :

Requête pour calculer le prochain jour ouvrable

Par exemple, supposons que la date actuelle soit le 24 mai 2024, créez une requête pour calculer le prochain jour ouvrable.

SELECT 
    MIN(date) AS next_business_day
FROM 
    your_date_table
WHERE 
    date > '2024-05-24'
    AND DAYOFWEEK(date) NOT IN (1, 7)
    AND date NOT IN (SELECT holiday_date FROM holidays);

Explication de la requête

    1. MIN(date) AS next_business_day:

    • Récupère la date la plus proche répondant aux critères, c’est-à-dire le prochain jour ouvrable.

    1. WHERE date > '2024-05-24':

    • Considère les dates postérieures à la date actuelle.

    1. AND DAYOFWEEK(date) NOT IN (1, 7):

    • Exclut les dimanches (1) et samedis (7).

    1. AND date NOT IN (SELECT holiday_date FROM holidays):

    • Exclut les jours fériés.

Exemple pratique : calcul du prochain jour ouvrable

Par exemple, si le 24 mai 2024 est un vendredi et que le lundi suivant, le 27 mai 2024, n’est pas un jour férié, cette requête renverra le 27 mai 2024 comme prochain jour ouvrable.

En utilisant cette requête, vous pouvez planifier efficacement les calendriers de travail dans vos processus d’affaires. Ceci conclut notre explication sur la méthode de calcul des jours ouvrables en tenant compte des jours fériés. Passons maintenant à la conclusion de l’article.

Conclusion

Nous avons expliqué comment calculer les jours ouvrables en tenant compte des jours fériés avec SQL. En commençant par la définition des jours ouvrables, nous avons décrit comment préparer les données des jours fériés, comment créer des requêtes SQL spécifiques, et en tant qu’exemples d’application, comment calculer le nombre de jours ouvrables pendant une période donnée ou déterminer le prochain jour ouvrable. En utilisant ces méthodes, vous pouvez améliorer la précision de la gestion des calendriers d’affaires et de l’analyse des données. En intégrant correctement les jours fériés, vous obtenez des données plus réalistes et pratiques. N’hésitez pas à les utiliser dans vos pratiques professionnelles.

Sommaire