SQL Server转换ISO 8601无法正常工作

Tim*_*gel 5 sql sql-server datetime

每个MSDN 转换应使用127作为样式参数,使用时区正确解析ISO 8601日期.

可选的时区指示符Z用于更轻松地将具有时区信息的XML日期时间值映射到没有时区的SQL Server日期时间值.Z是时区UTC-0的指示符.其他时区用+或 - 方向的HH:MM偏移表示.例如:2006-12-12T23:45:12-08:00.

以下所有内容均为有效的ISO 8601日期,但在从字符串转换日期和/或时间时返回转换失败.

select convert(datetime, N'2014-02-07T13:51:00+07:00', 127)
select convert(datetime, N'2014-02-07T13:51:00+07', 127)
select convert(datetime, N'2006-12-12T23:45:12-08:00', 127)
Run Code Online (Sandbox Code Playgroud)

任何人都有解决此问题的解决方案或解决方法?

Mit*_*eat 5

解决方法?:使用datetimeoffset

select convert(datetimeoffset, N'2014-02-07T13:51:00+07:00', 127) --<-- This one works...
select convert(datetimeoffset, N'2014-02-07T13:51:00+07', 127)
select convert(datetimeoffset, N'2006-12-12T23:45:12-08:00') --<-- and this one works...
Run Code Online (Sandbox Code Playgroud)