首页 > 解决方案 > 另一个“从字符串转换日期和/或时间时转换失败”问题

问题描述

日期时间字符串采用以下格式: 2017-03-07T16:17:59.000+0000

我已经尝试了十几个我在网上和这里找到的示例,但都导致相同(或几乎相同)的错误消息。

我尝试过的一些事情:

select CONVERT(datetime2, Create_Date, 103), * from dev.dbo.ticket_Data 
where assignee = 'eric king'

Select CONVERT(int, replace([Create_Date],'.0000+0000',''))Resolution_Date, * from dev.dbo.ticket_Data 
where assignee = 'eric king'

select lEFT([Create_Date],LEN([Create_Date] - 9)), Resolution_Date, * from dev.dbo.ticket_Data 
where assignee = 'eric king'


select DateDiff(d, Convert(Create_Date), Convert(Resolution_Date)), * from dev.dbo.ticket_Data 
where assignee = 'eric king'

编辑:在列中发现一些错误数据后,问题得到解决。它与尝试或日期格式无关,而是与错误数据有关。我使用了它,它现在按预期工作。

Select convert(datetime,Left(Replace(Create_Date, 'T', ' '), 19)), * from dev.dbo.ticket_data 

标签: sqltsqldatetime

解决方案


这对我有用

declare @ds varchar(40) = '2017-03-07T16:17:59.000+0000';
--set @ds = '2017-03-07T16:17:59.000'
declare @d datetime2 = '2017-03-07T16:17:59.000';
select @ds, @d 
, convert(datetime2, replace(@ds,'+0000',''));

推荐阅读