首頁 > 資料庫 > mysql教程 > 如何計算SQL Server中兩個日期之間的工作天數?

如何計算SQL Server中兩個日期之間的工作天數?

Susan Sarandon
發布: 2025-01-21 23:21:17
原創
447 人瀏覽過

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

計算 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板