Microsoft SQL Server 使用递归CTE生成日期范围
示例
使用递归CTE,您可以生成一个包含范围的日期:
Declare @FromDate Date = '2014-04-21',
@ToDate Date = '2014-05-02'
;With DateCte (Date) As
(
Select @FromDate Union All
Select DateAdd(Day, 1, Date)
From DateCte
Where Date < @ToDate
)
Select Date
From DateCte
Option (MaxRecursion 0)默认MaxRecursion设置为100。使用此方法生成100个以上的日期将需要Option(MaxRecursionN)查询的分段,此处N是所需的MaxRecursion设置。将此设置为0将MaxRecursion完全消除限制。