我有一個日期範圍,開始日期是今天之前的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