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

标签 sql sql-server

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

例如,从25/12/200614/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/

相关文章:

sql - psql : server closed the connection unexepectedly

mysql select 查询不适用于通过用户变量设置的限制和偏移量

python - 将 .h5 文件保存到 SQL 数据库

sql-server - 如何将 2 列求和为 1 列 SQL Server

sql - 在规范化数据库时从单个表插入多个表

mysql - 这些查询是否正确?

c# - System.Data.dll 中发生类型为 'System.Data.SqlClient.SqlException' 的异常

.net - TFS 连接错误 - 但服务器/数据库已启动

来自实例的 SQL 查询计数

php - 如何在 MySQL 中打乱行?