【问题标题】:How can I select records (containing Dates) grouped by Week如何选择按周分组的记录(包含日期)
【发布时间】:2012-07-08 02:33:41
【问题描述】:

我有一个表格,其中包含一个日期字段 + 一个名为 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 是星期日,我想要这样的组:

第一周: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

【问题讨论】:

标签: c# sql-server group-by


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 2012-01-23
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多