我将json文件插入到我的表中,但是如何将日期输入到我的表中呢?

时间:2018-05-09 13:36:20

标签: sql json sql-server tsql sql-server-2017

以下是我的表格结果。我剩下要做的就是插入电流 dateloaded中的日期:

image

我一直在尝试添加一个日期,当JSON文件中的数据加载到表中但却不知道正确的语法。有什么帮助吗? :)

3 个答案:

答案 0 :(得分:1)

从你的评论中得到另一个答案:

  

这不是很有效,这是错误“列名或数字   提供的值与表定义不匹配。“

您遇到的问题与

有关
insert into main.jsontable
select * from...

你永远不应该依赖列顺序。要插入的列和要读取的列必须匹配。最糟糕的情况是错误的匹配。

关于bad habits to kick: SELECT with *

将此更改为

insert into main.jsontable(name, surname, email, ...more columns...)
select <list your JSON "columns" here> 
from...

最后一步是将dateloaded包含在此:

insert into main.jsontable(dateloaded, name, surname, email, ...more columns...)
select SYSUTCDATETIME(), <list your JSON "columns" here> 
from...

更新

你已经被告知,张贴图片是值得避免的。从那里读起来很难,但似乎你在这里试图解决这个问题

with(
[dateloaded] datetimeoffset,
[name] ...

派生列永远不会获得任何值,因为您没有从JSON中读取此内容。

答案 1 :(得分:0)

您可以使用GETDATE(),这是实际的日期时间。

答案 2 :(得分:0)

sysdatetimeofffset()应该做你想做的事。排列列,以下内容应该有效:

select *, sysdatetimeoffset() from
openjson(@PersonDetails, <etc>