Maison > base de données > tutoriel mysql > Comment calculer le nombre de jours ouvrables entre deux dates dans SQL Server ?

Comment calculer le nombre de jours ouvrables entre deux dates dans SQL Server ?

Susan Sarandon
Libérer: 2025-01-21 23:21:17
original
402 Les gens l'ont consulté

How to Calculate the Number of Workdays Between Two Dates in SQL Server?

Calcul des jours ouvrables entre les dates dans SQL Server

Déterminer efficacement le nombre de jours ouvrables (du lundi au vendredi) entre deux dates est crucial pour de nombreuses applications SQL Server. Cela peut être accompli à l'aide d'une expression T-SQL concise. La formule suivante suppose une semaine de travail standard du lundi au vendredi :

<code class="language-sql">SELECT
    (DATEDIFF(day, @StartDate, @EndDate) + 1)
    - (DATEDIFF(week, @StartDate, @EndDate) * 2)
    - CASE WHEN DATENAME(weekday, @StartDate) = 'Sunday' THEN 1 ELSE 0 END
    - CASE WHEN DATENAME(weekday, @EndDate) = 'Saturday' THEN 1 ELSE 0 END</code>
Copier après la connexion

Ici, @StartDate et @EndDate représentent les dates de début et de fin. Le calcul recherche d'abord le nombre total de jours, puis soustrait les jours de week-end. Il gère également les cas extrêmes où la date de début est un dimanche ou la date de fin est un samedi.

Par exemple, avec @StartDate = '2008/10/01' et @EndDate = '2008/10/31', l'expression donne :

<code>(DATEDIFF(day, '2008/10/01', '2008/10/31') + 1)
- (DATEDIFF(week, '2008/10/01', '2008/10/31') * 2)
- CASE WHEN DATENAME(weekday, '2008/10/01') = 'Sunday' THEN 1 ELSE 0 END
- CASE WHEN DATENAME(weekday, '2008/10/31') = 'Saturday' THEN 1 ELSE 0 END</code>
Copier après la connexion

Cela donne 21, représentant les 21 jours ouvrables entre les dates données.

Rappelez-vous : ce calcul ne tient pas compte des jours fériés. Pour une solution plus complète incluant les jours fériés, une requête plus sophistiquée impliquant une table de jours fériés serait nécessaire.

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