将日期转换为SQL日期时间

时间:2014-08-26 17:42:08

标签: sql sql-server datetime

我对T-SQL有点新鲜,尽管阅读了一些表明这应该有用的文章,但是我无法将当年的10月1日转换为日期时间。

我试过了:

SELECT CAST(DATEPART(year, GETDATE()) + '1015' AS DATETIME)

SELECT CONVERT(datetime, 'Oct 15 ' + DATEPART(YEAR,GETDATE()),100)

各种变化。

有什么想法吗?我需要将datetime变量设置为当前年份的10月1日。

2 个答案:

答案 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)