3

我想检查一组日期值是否落在任何一个月的第一个或第三个或第五个星期一。如何在 SQL Server 2008 中执行此操作?

4

2 回答 2

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,...按照上面的方法进行检查,这样我就不必知道服务器上的日期设置是什么——我只是根据“已知良好”星期一检查该值)

于 2012-09-11T07:08:21.297 回答
2

尝试这个:

 SELECT  * 
 FROM    <your_table>
 WHERE   datename(weekday,<date_col>)='Monday'
 AND     DATEPART(day,<date_col>)/7 in (0,2,4)
于 2012-09-11T07:46:46.913 回答