每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)
任何人都有解决此问题的解决方案或解决方法吗?
答案 0 :(得分:4)
解决方法?:使用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...
答案 1 :(得分:1)
使用datetimeoffset or datetime2
代替datetime