我需要填写一个表,它将存储在给定日期之间的2个日期范围:09/01/11-10/10/11 8 M: S# Z$ U2 q4 ~5 _5 G* n8 B因此,在这种情况下,表将从2011年9月1日开始存储,直到每天存储到10/10/11。我想知道SQL Server有没有巧妙的方法?-我目前正在使用它SQL Server 2008 。谢谢6 r: ~+ j. m0 ]7 M. s w, z. g
$ ~3 v4 `; V$ H4 v; u解决方案: . T; l# q% m. C0 b l4 n- B
在SQL 2005 上容易;如果你有数字表或理货表,操作起来会更容易。我在下面伪造了它:0 b# T% b( {9 }3 F2 J8 E" D5 P
DECLARE @StartDate DATE = @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 nbrsWHERE nbr - 1 若您有计数表,则用该表替换子查询。没有递归。