2012-09-11 65 views
3

如果月份的第一個或第三個或第五個星期一落在日期中,我想檢查一組日期值。如何在SQL Server 2008中做到這一點?在月內獲取替代週末

回答

3

好了,可以很容易地通過幾個條件來表示:

WHERE 
    DATEPART(weekday,DateToCheck) = DATEPART(weekday,'20120910') AND 
    (
     DATEPART(day,DateToCheck) between 1 and 7 OR 
     DATEPART(day,DateToCheck) between 15 and 21 OR 
     DATEPART(day,DateToCheck) between 29 and 31 
    ) 

(我做如上DATEPART(weekday,...檢查,這樣我就不必知道你的日期設置在服務器上的東西 - 我只是檢查對一個「已知良好」週一的值)

2

試試這個:

SELECT * 
FROM <your_table> 
WHERE datename(weekday,<date_col>)='Monday' 
AND  DATEPART(day,<date_col>)/7 in (0,2,4) 
+0

即假定英語語言設置。 –

+0

@Damien_The_Unbeliever:這是真的..這個問題沒有說別的.. :) –