1. ホーム
  2. sql

[解決済み] 2つの日付の間の勤務日数を数える

2022-04-20 19:32:16

質問

SQL Serverで、2つの日付の間の勤務日数を計算するにはどうすればよいですか?

月曜日から金曜日までで、T-SQLであること。

解決方法は?

月曜日から金曜日までの平日であれば、このように1回のSELECTでできます。

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)

休日も含めるとなると、ちょっと工夫が必要ですが...。