我有一个需要选择{current year}-05-31 00:00:000
的查询。有没有办法可以做到没有只是把年份连接到那个字符串上?
这是我当前的疑问:
SELECT DATEADD(dd, 30, DATEADD(mm, 4, DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))
答案 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))
这是一年不结束的解决方案。