我怎样才能获得当前年份,同时仅通过提供的参数获得过去几年?

时间:2013-11-11 17:09:33

标签: sql-server-2008

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

1 个答案:

答案 0 :(得分: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)