我需要填充一个表,该表将存储2个给定日期之间的日期范围:09/01/11-10/10/11
因此,在这种情况下,该表将从2011年9月1日开始存储,直到每天存储到10/10/11,我想知道在SQL Server中是否有一种巧妙的方法-我目前正在使用SQL Server 2008 。 谢谢
在SQL 2005+上很容易;如果您有数字表或理货表,操作会更容易。我在下面伪造了它:
DECLARE @StartDate DATE = '20110901' , @EndDate DATE = '20111001' SELECT DATEADD(DAY, nbr - 1, @StartDate) FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr FROM sys.columns c ) nbrs WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)
如果您有一个计数表,则用该表替换子查询。没有递归。