我正在使用来自 logicapp 事件的 json,它具有以下格式的日期时间属性



在带有 OPENJSON Sql 函数 的存储过程中。
当我使用此函数执行“SELECT”时,它因此错误而失败



我的观察是 OPENJSON 无法转换第 3 位数字后的毫秒部分。

问题
有没有人看到 OPENJSON SQL 函数有这样的问题?

最佳答案

如果 DateTime2 ,你应该没有问题

示例

select AsDT2 = try_convert(datetime2,'2017-07-12T17:14:16.0500772Z')
      ,AsDT  = try_convert(datetime, '2017-07-12T17:14:16.0500772Z')

返回
AsDT2                         AsDT
2017-07-12 17:14:16.0500772   NULL   --<< Fails DateTime conversion

实际转换
Declare @JSON varchar(max) = '{"startTime": "2017-07-12T17:14:16.0500772Z","endTime": "2017-07-12T17:14:17.2939322Z"}'

SELECT * FROM
 OPENJSON (@JSON )
WITH (
              startTime  datetime2 '$.startTime',
              endTime    datetime2 '$.endTime'
 )

查看实际操作 dbFiddle

关于sql-server - OPENJSON 函数中的日期时间转换失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45196313/

10-10 13:02