Maison > base de données > tutoriel mysql > Comment calculer les jours de travail entre deux dates à l'aide de T-SQL ?

Comment calculer les jours de travail entre deux dates à l'aide de T-SQL ?

Susan Sarandon
Libérer: 2025-01-21 23:27:11
original
663 Les gens l'ont consulté

How to Calculate Work Days Between Two Dates Using T-SQL?

Calculer efficacement les jours de travail en T-SQL

Déterminer le nombre de jours ouvrés entre deux dates est une exigence courante dans SQL Server. Ceci est crucial pour la planification des projets, le calcul des congés des employés et d’autres applications commerciales. Ce guide démontre une approche T-SQL robuste.

Une solution T-SQL pour le calcul de la journée de travail

Les étapes suivantes décrivent une méthode de calcul des jours de travail dans SQL Server à l'aide de Transact-SQL (T-SQL) :

  1. Déclaration de variable : Commencez par déclarer des variables pour contenir les dates de début et de fin.
  2. Affectation de dates : Attribuez vos dates de début et de fin à ces variables.
  3. Calcul du nombre de jours de travail : Le calcul de base utilise cette formule :

(DATEDIFF(dd, @StartDate, @EndDate) 1) - (DATEDIFF(wk, @StartDate, @EndDate) * 2)

Cette formule calcule le nombre total de jours, soustrait les jours du week-end (deux par semaine) et prend en compte les scénarios dans lesquels la date de début ou de fin tombe un week-end.

Exemple illustratif

Illustrons avec un exemple pratique :

<code class="language-sql">DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
SET @StartDate = '2023-03-06';
SET @EndDate = '2023-03-20';

SELECT
    (DATEDIFF(dd, @StartDate, @EndDate) + 1)
    - (DATEDIFF(wk, @StartDate, @EndDate) * 2)
    - (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
    - (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END);</code>
Copier après la connexion

Gestion des jours fériés

Pour des résultats plus précis, intégrez les jours fériés dans le calcul :

  1. Création d'une table de vacances : Créez une table pour stocker les dates de vacances pour la ou les années concernées.
  2. Amélioration de la requête : Modifiez la requête pour exclure les dates de jours fériés du décompte des jours ouvrables en les joignant à la table des jours fériés. Cela nécessite une requête plus sophistiquée, utilisant potentiellement une CTE (Common Table Expression) pour une lisibilité et une maintenabilité améliorées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal