我需要编写一个查询,在给定日期之前3个工作日,而不使用函数。我对SQL知之甚少,想知道这个简单的查询是否足够。
DECLARE @date DATETIME
SET @date = '7 september 2013'
SELECT DATEPART(dw, @date),
CASE WHEN DATEPART(dw, @date) = 1 THEN @date - 4
WHEN DATEPART(dw, @date) =2 THEN @date - 5
WHEN DATEPART(dw, @date) =3 THEN @date - 5
WHEN DATEPART(dw, @date) =4 THEN @date - 5
WHEN DATEPART(dw, @date) =5 THEN @date - 3
WHEN DATEPART(dw, @date) =6 THEN @date - 3
WHEN DATEPART(dw, @date) =7 THEN @date - 3
END AS '3 Business days prior'
答案 0 :(得分:0)
如果您只需要3天,不包括星期六,星期日和节假日不是问题,那么您可以使用工作日(W):
DECLARE @date DATETIME SET @date ='2013年9月7日'
选择dateadd(w,-3,@ date)