我需要填充一个表,该表将存储2个给定日期之间的日期范围:09/01/11-10/10/11因此,在这种情况下,表格将从11年9月1日开始存储,直到每天存储到10/10/11,我想知道在SQL Server中是否有一种巧妙的方法-我目前正在使用SQL Server 2008 。 谢谢
3 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
如果您使用的是SQL Server 2005或更高版本,请尝试以下操作:
WITH Dates AS (
SELECT
[Date] = CONVERT(DATETIME,'09/01/2011')
UNION ALL SELECT
[Date] = DATEADD(DAY, 1, [Date])
FROM
Dates
WHERE
Date < '10/10/2011'
) SELECT
[Date]
FROM
Dates
OPTION (MAXRECURSION 45)
CTE可以做的很棒的好例子。
慕村225694
TA贡献1880条经验 获得超4个赞
- 声明
DECLARE @dates TABLE(dt datetime)
DECLARE @dateFrom datetime
DECLARE @dateTo datetime
SET @dateFrom = '2001/01/01'
SET @dateTo = '2001/01/12'
- 查询:
WHILE(@dateFrom < @dateTo)
BEGIN
SELECT @dateFrom = DATEADD(day, 1,@dateFrom)
INSERT INTO @dates
SELECT @dateFrom
END
- 输出
SELECT * FROM @dates
- 3 回答
- 0 关注
- 420 浏览
添加回答
举报
0/150
提交
取消