Tus*_*arJ 3 sql-server json azure-sql-database
我正在使用来自logicapp事件的json,它具有以下格式的datetime属性
Run Code Online (Sandbox Code Playgroud)"startTime": "2017-07-12T17:14:16.0500772Z", "endTime": "2017-07-12T17:14:17.2939322Z",
在带有OPENJSON Sql函数的存储过程中。当我使用此功能执行“ SELECT”时,它将失败并显示此错误
消息241,级别16,状态1,第33行从字符串转换日期和/或时间时,转换失败。
我的观察是,OPENJSON无法在第3位数字后转换millisec部分。
问题 有没有人看到过OPENJSON SQL函数的此类问题?
如果DateTime2,您应该没有问题
例
select AsDT2 = try_convert(datetime2,'2017-07-12T17:14:16.0500772Z')
,AsDT = try_convert(datetime, '2017-07-12T17:14:16.0500772Z')
Run Code Online (Sandbox Code Playgroud)
退货
AsDT2 AsDT
2017-07-12 17:14:16.0500772 NULL --<< Fails DateTime conversion
Run Code Online (Sandbox Code Playgroud)
实际转换
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'
)
Run Code Online (Sandbox Code Playgroud)
看到它在行动dbFiddle
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |