如何将日期从varchar转换为DATETIME

时间:2014-08-01 19:53:18

标签: sql sql-server sql-server-2008

嘿我的表格中有一个名为DATE_Hour的列varchar,其值为

Tue, 29 Jul 2014 14:00

如何将该日期转换为2014-07-29 14:00:00.000

由于

3 个答案:

答案 0 :(得分:1)

如果它始终包含星期几后跟逗号,则可以使用:

SELECT CAST(STUFF(DATE_Hour,1,CHARINDEX(',',DATE_Hour),'')AS DATETIME)
FROM YourTable

格式:' 2014年7月29日14:00'会在没有问题的情况下进行投射,但是之前一周中的某一天不是可接受的格式,因此您只需使用STUFF()剥离当天CAST()剩余的内容。

答案 1 :(得分:0)

DECLARE @str VARCHAR(100) = 'Tue, 29 Jul 2014 14:00'

PRINT CONVERT(VARCHAR(100),CAST(RIGHT(@str,LEN(@str)-CHARINDEX(',',@str))  AS DATETIME),121)

答案 2 :(得分:0)

试试这个,无论你在一周中的哪一天(即可能是WED,THURS等等,以防你的星期几不是三个字符),它都会有效:

DECLARE @VarcharTime VARCHAR(50) = 'Tue, 29 Jul 2014 14:00'
SELECT CAST(SUBSTRING(@VarcharTime, PATINDEX('%, %',@VarcharTime)+2, LEN(@VarcharTime)) AS DATETIME)

编辑:如果您对保存字符感兴趣,这也适用于PATINDEX('%,%',@VarcharTime)+1:)