选择当前年份的特定日期

时间:2015-06-12 14:29:02

标签: sql tsql sql-server-2008-r2

我有一个需要选择{current year}-05-31 00:00:000的查询。有没有办法可以做到没有只是把年份连接到那个字符串上?

这是我当前的疑问:

SELECT DATEADD(dd, 30, DATEADD(mm, 4, DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))

2 个答案:

答案 0 :(得分:6)

HVD的方法可能是最简单的方法:

SELECT DATEADD(YEAR,YEAR(GETDATE()) - 2000,'20000531')

在SQL 2012及更高版本中,它们非常简单。

SELECT DATEFROMPARTS(YEAR(GETDATE()),05,31)

答案 1 :(得分:1)

如果您没有性能问题,可以使用:

DATEADD(YEAR,DATEDIFF(YEAR,CAST('2018-05-31 00:00:000' AS DATETIME), GETDATE()),CAST('2018-05-31 00:00:000' AS DATETIME))

这是一年不结束的解决方案。