SQL从给定日期减去3个工作日

时间:2013-09-16 08:06:47

标签: sql sql-server

我需要编写一个查询,在给定日期之前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'

1 个答案:

答案 0 :(得分:0)

如果您只需要3天,不包括星期六,星期日和节假日不是问题,那么您可以使用工作日(W):

DECLARE @date DATETIME SET @date ='2013年9月7日'

选择dateadd(w,-3,@ date)