Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server OPENJSON函数中的日期时间转换失败_Sql Server_Json_Azure Sql Database - Fatal编程技术网

Sql server 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

我使用的json来自logicapp events,它具有以下格式的datetime属性

在带有OPENJSON Sql函数的存储过程中。 当我使用此函数执行“选择”时,它会失败并出现此错误

转换时,Msg 241,16级,状态1,第33行转换失败 来自字符串的日期和/或时间

我的观察结果是OPENJSON无法转换第三位之后的毫秒部分

问题
有人见过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'
 )