2013-02-28 175 views
0

我在我的select語句如下:如何計算,如果工作日是超過6天,從今天的日期

CASE WHEN DATEADD(DAY, - 5, GETDATE()) > [Date] THEN '6+' ELSE NULL END AS Test 

這工作得很好,但它也包括週末。如果今天的日期--5是>日期,我將如何去計算不計算週末的部分?我只想使用5個工作日,而不是週末。

+0

所以如果在5天回是週末,你想它只是返回'NULL'? – JNK 2013-02-28 21:21:08

+0

是的,這是正確的 – mameesh 2013-02-28 21:21:57

+0

只需將-5更改爲-7。五個工作日之外 - 不包括假期 - 將持續一週。瞧,7天。 – 2013-02-28 21:23:42

回答

1

這將排除週六和週日從CASE

CASE WHEN 
    (
     (DATEADD(DAY, - 5, GETDATE()) > [Date]) 
     AND 
     (DATEPART(WEEKDAY, DATEADD(DAY, - 5, GETDATE())) NOT IN (7,1)) 
    ) 
    THEN '6+' END AS Test 
+1

這取決於[DATEFIRST](http://msdn.microsoft.com/en-us/library/ms181598.aspx)設置,是? – Magnus 2013-02-28 21:30:44

+0

DATEFIRST = 1是否正確? – mameesh 2013-02-28 21:52:28

+0

對不起,'DateFirst'需要是1 – JNK 2013-02-28 21:56:28