計算 SQL Server 中日期之間的工作日
有效確定兩個日期之間的工作天數(週一至週五)對於許多 SQL Server 應用程式至關重要。 這可以使用簡潔的 T-SQL 表達式來完成。 以下公式假設標準週一至週五工作週:
<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>
這裡,@StartDate
和@EndDate
代表開始和結束日期。 計算先找到總天數,然後減去週末天數。 它還處理開始日期是星期日或結束日期是星期六的邊緣情況。
例如,使用 @StartDate = '2008/10/01'
和 @EndDate = '2008/10/31'
,表達式產生:
<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>
結果為 21,代表給定日期之間的 21 個工作天。
請記住:此計算不考慮公共假期。 對於包括假期在內的更全面的解決方案,需要涉及假期表的更複雜的查詢。
以上是如何計算SQL Server中兩個日期之間的工作天數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!