我想检索两个日期之间不同年份的列表。
例如,从25/12/2006到14/11/2013,结果应类似于:
25/12/2006
14/11/2013
2006 2007 2008 2009 2010 2011 2012 2013
在SQL Server中这可能吗?
像这样的日期1/2/2013含糊不清:根据地区设置,日期可能是2月1日,也可能是1月2日。因此,在与YYYY-MM- DD日期库进行对话时,最好使用日期格式。
1/2/2013
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中的示例。