如何在TSQL中获取结果集,其日期范围为过去10周,包括作为列的周。
Date WeekNo
2014-11-21 1
2014-11-22 1
2014-11-23 1
....
2014-11-28 2
2014-11-29 2
我能够在另一个问题的帮助下把它放在一起,但我没有在其中加入一周。
DECLARE @DateFrom smalldatetime, @DateTo smalldatetime;
SET @DateFrom= DATEADD(week,-10, GETDATE());
SET @DateTo=GETDATE();
-------------------------------
WITH T(date)
AS
(
SELECT @DateFrom
UNION ALL
SELECT DateAdd(day,1,T.date) FROM T WHERE T.date < @DateTo
)
SELECT date FROM T OPTION (MAXRECURSION 32767);
答案 0 :(得分:1)
如果您的上述查询有效,您可以只进行日期算术以获得一周:
WITH T(date) AS
(SELECT @DateFrom
UNION ALL
SELECT DateAdd(day,1,T.date) FROM T WHERE T.date < @DateTo
)
SELECT date,
1 + (datediff(day, @DateFrom, date) / 7)
FROM T
OPTION (MAXRECURSION 32767);