我想检索两个日期之间不同年份的列表。
例如,从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
日期格式。
您可以使用递归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
Example at SQL Fiddle.
关于sql - 两个日期之间不同年份的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16857539/