生成日期范围之间的日期

我需要填充一个表,该表将存储2个给定日期之间的日期范围:09/01/11-10/10/11

因此,在这种情况下,表格将从11年9月1日开始存储,直到每天存储到10/10/11,我想知道在SQL Server中是否有一种巧妙的方法-我目前正在使用SQL Server 2008 。 谢谢


温温酱
浏览 421回答 3
3回答

侃侃尔雅

如果您使用的是SQL Server 2005或更高版本,请尝试以下操作:WITH Dates AS (&nbsp; &nbsp; &nbsp; &nbsp; SELECT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[Date] = CONVERT(DATETIME,'09/01/2011')&nbsp; &nbsp; &nbsp; &nbsp; UNION ALL SELECT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[Date] = DATEADD(DAY, 1, [Date])&nbsp; &nbsp; &nbsp; &nbsp; FROM&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Dates&nbsp; &nbsp; &nbsp; &nbsp; WHERE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Date < '10/10/2011') SELECT&nbsp;[Date]FROM&nbsp;Dates&nbsp;OPTION (MAXRECURSION 45)CTE可以做的很棒的好例子。

慕村225694

- 声明DECLARE @dates TABLE(dt datetime)&nbsp; &nbsp;&nbsp;DECLARE @dateFrom datetimeDECLARE @dateTo datetimeSET @dateFrom = '2001/01/01'SET @dateTo = '2001/01/12'- 查询:WHILE(@dateFrom < @dateTo)BEGIN&nbsp; &nbsp;SELECT @dateFrom = DATEADD(day, 1,@dateFrom)&nbsp; &nbsp;INSERT INTO @dates&nbsp;&nbsp; &nbsp;SELECT @dateFromEND- 输出SELECT * FROM @dates
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server