嘿我的表格中有一个名为DATE_Hour
的列varchar
,其值为
Tue, 29 Jul 2014 14:00
如何将该日期转换为2014-07-29 14:00:00.000
?
由于
答案 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
:)