我已经在一年中的所有星期在这个网站的代码如下,我应该填充星期日期,开始日期为星期六和结束日期为星期五。当一周结束时,它应该进入下一周的日期。 我怎么能达到这个请帮助我。显示整个星期的开始日期为星期六
DECLARE @Year INT=2013;
DECLARE @start DATE;
--DECLARE @WK INT=2
SET @start = DATEADD(YEAR, @Year-1900, 0);
;WITH n AS
(
SELECT TOP (366) -- in case of leap year
TDate = DATEADD(DAY, ROW_NUMBER() OVER (ORDER BY name)-1, @start)
FROM sys.all_objects
),
x AS
(
SELECT md = MIN(TDate) FROM n
WHERE DATEPART(WEEKDAY, TDate) = 7 -- assuming DATEFIRST is SATURDAY
),
y(TDate,wk) AS
(
SELECT n.TDate, ((DATEPART(DAYOFYEAR,n.TDate)-
DATEDIFF(DAY, @start,x.md)-1)/7)+1
FROM n CROSS JOIN x
WHERE n.TDate >= x.md
AND n.TDate < DATEADD(YEAR, 1, @start)
)
SELECT [date] = TDate, [week] = wk
FROM y WHERE wk < 53
ORDER BY [date];
我不明白你的问题,你期望输出什么?你有没有考虑过使用[日历表](http://sqlserver2000.databases.aspfaq.com/why-should-i-consider-using-an-auxiliary-calendar-table.html)而不是复杂的查询?或者这是为了填充日历表? – Pondlife 2013-02-13 17:14:27