使用遞迴 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 (MaxRecursion N) 段,其中 N 是所需的 MaxRecursion 設定。將此設定為 0 將完全取消 MaxRecursion 限制。