我只想要一个快速的方法(最好不要使用while循环)来创建一个日期@x和日期@y之间的每个日期的表,这样我就可以将外部联接留给一些统计表,其中一些表没有确定的记录介于两者之间,允许我用0来标记缺失的日子
严格来说,这并不完全回答你的问题,但它非常整洁.
假设您可以指定开始日期之后的天数,那么使用公用表表达式可以:
WITH numbers ( n ) AS ( SELECT 1 UNION ALL SELECT 1 + n FROM numbers WHERE n < 500 ) SELECT DATEADD(day,n-1,'2008/11/01') FROM numbers OPTION ( MAXRECURSION 500 )