如何查找日期是否来自奇数或偶数周?

时间:2012-11-01 13:15:35

标签: sql sql-server stored-procedures

在我的表格中我每天都有:

Id_______Startdate _______ EndDate __________MondayMorning _____MondayEvening ___TuMorning  ....  
121 _____2012-01-01________2012-12-31 ________2 ___________________2______________2   
122 _____2012-02-01________2012-08-05 ________1 ___________________2______________3   

我已经使用Startdate和EndDate生成了一个日期列表。

我想知道这个日期是属于奇数周还是偶数周,以便我可以从输出中过滤数字为3或1的天数(见第二条记录)。

如何过滤属于具有数字1和3的奇数周甚至数周的天数?

1 个答案:

答案 0 :(得分:3)

您可以使用datepartwk参数来确定周数:

 SELECT datepart(wk, YourDate) 

从那里,您可以使用模数来确定周数是偶数还是奇数:

 SELECT datepart(wk, YourDate) % 2

对于偶数周,这将返回0,对于奇数周,将返回1.