我将 JSON 对象的输出保存在 CSV 文件中。我想将数据导入 SQL Server。我尝试将 JSON 日期列转换为 SQL Server 日期时间数据类型。
select cast('2009-06-18T16:44:20+0000' as datetime)
这会引发错误:从字符串转换日期和/或时间时转换失败。
如何将带时区的 JSON 日期转换为 SQL Server 日期时间?
最佳答案
我也有类似的问题;尽管我的日期的日期格式有点不同,但我遇到了同样的错误。我的解决方案是将其转换为 DATETIME2 值,而不仅仅是 DATETIME。如果我没有看到 Pawel 的回答,我不会尝试转换为 DATETIME2。
我获得的日期来自使用 JSON.Net 序列化为 JSON 的 C# 对象。下面是一个示例 SQL 脚本,显示了日期时间值是什么以及如何转换它。
DECLARE @effectiveDateJSON VARCHAR(MAX) =
'{"EffectiveDate":"2017-02-07T00:00:00-06:00", "CreateDate":"2017-02-07T16:32:12.9130892-06:00"}';
SELECT *
FROM OPENJSON(@effectiveDateJSON)
WITH (EffectiveDate DATETIME2 '$.EffectiveDate',
CreateDate DATETIME2 '$.CreateDate'
);
关于sql-server - 如何将带时区的 JSON 日期转换为 SQL Server 日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38982977/