Sql server OPENJSON函数中的日期时间转换失败
我使用的json来自logicapp events,它具有以下格式的datetime属性 在带有OPENJSON Sql函数的存储过程中。 当我使用此函数执行“选择”时,它会失败并出现此错误 转换时,Msg 241,16级,状态1,第33行转换失败 来自字符串的日期和/或时间 我的观察结果是OPENJSON无法转换第三位之后的毫秒部分 问题Sql server OPENJSON函数中的日期时间转换失败,sql-server,json,azure-sql-database,Sql Server,Json,Azure Sql Database,我使用的json来自logicapp events,它具有以下格式的datetime属性 在带有OPENJSON Sql函数的存储过程中。 当我使用此函数执行“选择”时,它会失败并出现此错误 转换时,Msg 241,16级,状态1,第33行转换失败 来自字符串的日期和/或时间 我的观察结果是OPENJSON无法转换第三位之后的毫秒部分 问题 有人见过OPENJSON SQL函数有这样的问题吗?如果DateTime2,您应该不会有问题 示例 select AsDT2 = try_convert(d
有人见过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
查看它的实际操作这很不幸,因为字符串100%符合ISO标准。。。但是微软对标准了解多少呢?¯\_(ツ)_/''谢谢您的快速回复。@TusharJ很乐意帮助我的朋友们如何插入datetime2是否可以为空值?@GSandro_strong我不确定我是否理解您的问题,但请看一看
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'
)