0

我有一个表,其中包含一个日期字段 + 一个名为 WeekDayID 的字段(sun=0,mon=1,tue=2,wed=3,thu=4,fri=5,sat=6)+ 一些其他字段(不重要提),我需要两份报告:
1.基于月
2.基于周

我已经完成了第 1 号报告

我的问题是我如何才能达到报告 2,我需要一些东西来给我这个:


假设我们的日期从 2001/01/01 到 2001/01/31

我想按周对所有天进行分组,例如,如果 2001/01/01 是星期日,我想要这样的组:

第 1 周 : 2001/01/01 - 2001/01/02 - ... - 2001/01/07
第 2 周 : 2001/01/08 - ... - 2001/01/14
第 3 周 : 2001/01/15 - ... - 2001/01/21
第 4 周 : 2001/01/22 - ... - 2001/01/28
第 5 周 : 2001/01/29 - 2001/01/30 - 2001/01/31

4

1 回答 1

1

对于周数,您可以使用 Datepart 函数,第一个参数的值为 'ww':

SELECT Datepart(ww, myDate) FROM myTable

对于日期范围,您可以做一些数学技巧: 减去工作日的日期以获得一周的第一天:

SELECT DateAdd(day, - DatePart(weekday, myDate), myDate) Week_Start
from myTable

这里有一个 DatePart 函数的链接:

http://msdn.microsoft.com/es-es/library/ms174420.aspx

于 2012-08-16T12:49:35.643 回答