在SQL Server中将字符串转换为日期

在SQL Server中将字符串转换为日期,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,从字符串转换日期和/或时间时,转换失败 在SQL Server中运行此语句时出现上述错误: SELECT CONVERT(datetime, 'Fri, 15 Jan 2016 17:30:05 GMT') 实际上,我想在Datetime列中插入相同的字符串格式如果要将字符串'Fri,2016年1月15日17:30:05 GMT'插入Datetime列,则需要在插入之前从字符串中删除Fri,和GMT SELECT CAST(substring(@str_date,5,len(@str_date

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

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

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

实际上,我想在
Datetime
列中插入相同的字符串格式

如果要将字符串
'Fri,2016年1月15日17:30:05 GMT'
插入
Datetime
列,则需要在插入之前从字符串中删除
Fri,
GMT

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

正如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,请查看此解决方案。

预期结果是什么。是否要转换为本地时间当前时间戳的格式似乎不受
convert
的支持,因此我认为您需要对其进行处理才能使转换生效。实际上,我想在Datetime列中插入相同的字符串格式,并以一种它可以轻松处理的形式将数据呈现给SQL Server:。