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>
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>
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!