一尘不染

SQL Server Convert ISO 8601不能按记录工作

sql

每个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)

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


阅读 138

收藏
2021-05-23

共1个答案

一尘不染

解决方法?:使用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...
2021-05-23