Calculer les jours ouvrés entre deux dates dans SQL Server
Le calcul du nombre de jours ouvrables entre deux dates données est un outil précieux pour la planification, la gestion du temps et diverses autres applications professionnelles. Dans SQL Server, vous pouvez calculer directement les jours ouvrables du lundi au vendredi à l'aide de T-SQL.
Solution :
Pour déterminer le nombre de jours ouvrés entre deux dates (@StartDate et @EndDate), vous pouvez utiliser la formule suivante :
<code class="language-sql">(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>
Répartition des formules :
DATEDIFF(dd, @StartDate, @EndDate)
Calculez le nombre total de jours entre deux dates, week-end compris. DATEDIFF(wk, @StartDate, @EndDate)
Calculez le nombre de semaines complètes entre deux dates. (DATEDIFF(wk, @StartDate, @EndDate) * 2)
représente le nombre de jours de week-end dans la plage de dates spécifiée. (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
Vérifiez si la date de début est dimanche, si c'est le cas, soustrayez 1 jour. (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)
Vérifiez si la date de fin est un samedi, si oui, soustrayez 1 jour. Exemple :
Pour calculer le nombre de jours ouvrés entre le 1er octobre 2008 et le 31 octobre 2008, vous pouvez utiliser la requête suivante :
<code class="language-sql">DECLARE @StartDate DATETIME DECLARE @EndDate DATETIME SET @StartDate = '2008/10/01' SET @EndDate = '2008/10/31' 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>
Cette requête renverra le résultat 22, qui représente le nombre de jours ouvrés entre le 1er et le 31 octobre 2008, hors week-end.
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!