Microsoft SQL Server 使用CTE生成日期表

示例

DECLARE @startdate CHAR(8), @numberDays TINYINT

SET @startdate = '20160101'

SET @numberDays = 10;

WITH CTE_DatesTable

AS

(

  SELECT CAST(@startdate as date) AS [date]

  UNION ALL

  SELECT DATEADD(dd, 1, [date])

  FROM CTE_DatesTable

  WHERE DATEADD(dd, 1, [date]) <= DateAdd(DAY, @numberDays-1, @startdate)

)

SELECT [date] FROM CTE_DatesTable

OPTION (MAXRECURSION 0)

本示例返回一个单列日期表,该表从@startdate变量中指定的日期开始,并返回下一个@numberDays日期的日期。

以上是 Microsoft SQL Server 使用CTE生成日期表 的全部内容, 来源链接: utcz.com/z/340705.html

回到顶部