3

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

1 回答 1

0

如果您只需要提前 3 天,不包括周六周日和节假日,那么您可以使用工作日(W):

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

选择日期添加(w,-3,@date)

于 2014-08-28T16:51:53.290 回答