每个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)
任何人都有解决此问题的方法或解决方法?
解决方法?:使用datetimeoffset:
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...