在SQL Server

时间:2016-01-16 07:06:03

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

  

从字符串转换日期和/或时间时转换失败。

在SQL Server中运行此语句时出现上述错误:

SELECT CONVERT(datetime, 'Fri, 15 Jan 2016 17:30:05 GMT')

实际上我想在Datetime

中插入相同的字符串格式

2 个答案:

答案 0 :(得分:3)

如果要将字符串'Fri, 15 Jan 2016 17:30:05 GMT'插入datetime列,则需要在插入前从字符串中删除Fri,GMT

SELECT CAST(substring(@str_date,5,len(@str_date)-8) as datetime)

DEMO

答案 1 :(得分:3)

根据Tim Biegeleisen的建议,该字符串需要进行处理以进行转换。要进行转换,您需要在结尾处删除当天(Fri,)和GMT时区,例如:

DECLARE @date varchar(50) = 'Fri, 15 Jan 2016 17:30:05 GMT'
SELECT  CONVERT(DATETIME, SUBSTRING(@date, 5, LEN(@date) - 8), 113)

此解决方案会删除时区信息,如果要将其转换回UTC,请查看此post