使用 T-SQL 中的时间偏移量解析日期时间

Parse date time with time offset in T-SQL

我有以下形式的日期(文本): 2016-07-05T13:09:35-06:00

它是 ODBC 格式,所以我可以简单地:

SELECT CONVERT(DateTime2, REPLACE(LEFT(TimeModifiedUnparsed, 19), 'T', ' '), 120)

这就是我 DateTime2,但没有时间偏移。 我可以解析和转换小时和分钟并注销最后 6 个字符,然后执行 DATEADD.. 但我想也许有更好的方法将这样的字符串转换为 SQL 服务器中的 utc DateTime?

select convert(datetime2, cast('2016-07-05T13:09:35-06:00' as datetimeoffset), 1)

结果:

2016-07-05 19:09:35.0000000