我对T-SQL有点新鲜,尽管阅读了一些表明这应该有用的文章,但是我无法将当年的10月1日转换为日期时间。
我试过了:
SELECT CAST(DATEPART(year, GETDATE()) + '1015' AS DATETIME)
SELECT CONVERT(datetime, 'Oct 15 ' + DATEPART(YEAR,GETDATE()),100)
各种变化。
有什么想法吗?我需要将datetime变量设置为当前年份的10月1日。
答案 0 :(得分:1)
你想要的是关闭,但是DATEPART返回一个数字,所以“+”正在做加法,而不是连接。
试试这样:
SELECT CAST(CAST(DATEPART(year, GETDATE()) AS VARCHAR(4)) + '1015' AS DATETIME)
编辑 - 埃德打败了我,Concat功能也更好。
但如果你真的想把它赶出公园,试试这个......
SELECT DATEADD(month, 9, DATEADD(year, DATEDIFF(year, 0, getdate()), 0)) As October1CurrentYear
不需要施法!
答案 1 :(得分:0)
您的第一个查询非常接近。问题是连接的加号(+)实际上是给你一个数字值,你不能把它转换为日期。
要连接一年和'1015'并以字符串结尾,请改用CONCAT
函数:
SELECT CAST(CONCAT(DATEPART(YEAR, GETDATE()), '1015') AS DATE)