【发布时间】:2016-07-28 21:50:42
【问题描述】:
从星期一开始按周数分组
工作日创建表
(
StartDate 日期时间 NOT NULL
, CountValue INT NOT NULL
);
插入工作日 (StartDate , CountValue ) 值
('2015-04-01', 4),
('2015-04-02', 1),
('2015-04-07', 2),
('2015-04-08', 8),
('2015-04-09', 3),
('2015-04-15', 2),
('2015-04-16', 6);
SELECT DATEPART(wk, StartDate ) weekno
, SUM(CountValue ) 总值
从工作日开始
按日期分组(周,开始日期)
2015 年 4 月 4 日至 2015 年 4 月 10 日,每周一 14
将比较 2015 年和 2016 年的总数
【问题讨论】:
-
SQL Server 在以英语 (technet.microsoft.com/en-us/library/…) 配置时默认为周日至周六周。所以对于 2,4 月 10 日是第 16 周,4 月 3 日到 4 月 9 日是第 15 周。
-
我真的不喜欢使用 datepart 几个星期。我更喜欢从 startdate 开始的几周内的 datediff(startdate 日期是我需要的任何一天)。
标签: sql sql-server sql-server-2008