-1

例如,如果您提供 4 作为参数,它将返回当前年份和过去 4 年:2013 和 (2012, 2011, 1010, 2009)

4

1 回答 1

1

如果您想要的是一个年份列表,例如:

years
-----------
2013
2012
2011
2010
2009

这个查询应该这样做:

DECLARE @interval INT
SET @interval = 4
;WITH DateSequence( years ) AS
(
    SELECT YEAR(GETDATE()) AS Years
        UNION ALL
    SELECT Years - 1
        FROM DateSequence
        WHERE Years > YEAR(getdate())-@interval
)

--select result
SELECT * FROM DateSequence OPTION (MaxRecursion 1000)
于 2013-11-11T17:21:20.920 回答