一尘不染

两个日期之间不同年份的列表

sql

我想检索两个日期之间不同年份的列表。

例如,从25/12/200614/11/2013,结果应类似于:

2006
2007
2008
2009
2010
2011
2012
2013

在SQL Server中这可能吗?


阅读 129

收藏
2021-05-16

共1个答案

一尘不染

像这样的日期1/2/2013含糊不清:根据地区设置,日期可能是2月1日,也可能是1月2日。因此,在与YYYY-MM- DD日期库进行对话时,最好使用日期格式。

您可以使用递归CTE生成数字列表:

; with  CTE as
        (
        select  datepart(year, '2006-12-25') as yr
        union all
        select  yr + 1
        from    CTE
        where   yr < datepart(year, '2013-11-14')
        )
select  yr
from    CTE

SQL Fiddle中的示例。

2021-05-16