我正在使用来自logicapp事件的json,它具有以下格式的日期时间属性
"startTime": "2017-07-12T17:14:16.0500772Z", "endTime": "2017-07-12T17:14:17.2939322Z",
在带有 OPENJSON Sql函数的存储过程中。 当我执行' SELECT'使用此功能时,它会因此错误而失败
消息241,级别16,状态1,行33转换时转换失败 字符串的日期和/或时间。
我的观察是OPENJSON无法在第3位数后转换毫秒级部分。
问题 有没有人看到OPENJSON SQL函数出现这样的问题?
答案 0 :(得分:4)
如果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