我有一个日期范围,开始日期是今天之前的2年。例如'05/29/2007'〜'05/29/2009'。按周分组日期范围
我该如何突破日期范围,以便获得如下列表?
(开始日期从“05/27/2007”开始,而不是“05/29/2007”,因为从星期一开始是星期天,'05/27/2007'是'05 /二千〇七分之二十九' 和同样的道理在过去的结束日期,二○○九年五月三十○日,这是星期六)
StartDate EndDate
05/27/2007 06/02/2007
06/03/2007 06/09/2007
...
05/24/2009 05/30/2009
[更新]这里是我的最终查询
WITH hier(num, lvl) AS (
SELECT 0, 1
UNION ALL
SELECT 100, 1
UNION ALL
SELECT num + 1, lvl + 1
FROM hier
WHERE lvl < 100
)
SELECT num, lvl,
DATEADD(dw, -DATEPART(dw, '2007-05-29'), '2007-05-29') + num * 7,
DATEADD(dw, -DATEPART(dw, '2007-05-29'), '2007-05-29') + (num + 1) * 7
FROM hier
where num <= 104 --; 52 weeks/year * 2
ORDER BY num
感谢您发布最新结果的更新。大多数人没有意识到它对其他人有多大的帮助。 – Crimius 2012-08-16 12:44:35