gpt4 book ai didi

c# - SQL Server datetimeoffset 和 json 自动将 datetimeoffset 更改为 datetime

转载 作者:行者123 更新时间:2023-12-05 08:08:15 27 4
gpt4 key购买 nike

我从具有多个 datetimeoffet 列的表中选择一条记录,当我添加 for json auto 时,它将它从

2017-06-21 08:12:16.1430000 +00:00 

2017-06-21T08:12:16.1430000Z

这是我的代码:

select LastUpdateTimestamp 
from table
where id = 1
for json auto

产生这个输出:

[{"LastUpdateTimestamp":"2017-06-21T08:12:16.1430000Z"}]

如何在不转换的情况下保持其格式,或者如何在 C# 中将其转换回该格式?我正在做很多动态工作,我不能依赖所有日期来适应特定格式。

最佳答案

There is no JSON datetime data type nor standard for string formats for datetime data in JSON .底层 SQL Server datetimeoffset(7) 数据类型是一个 10 字节的二进制结构,没有格式概念,因此它不能在不转换的情况下用 JSON 字符串表示。

默认情况下,SQL Server 使用 JSON AUTO 返回 ISO 8601 格式的字符串。您遇到的问题是“+00:00”被 UTC 抑制;仅当 UTC 偏移量不为零时才包含偏移量。

如果 JSON AUTO 默认值不够用,您可以使用 FORMAT T-SQL 函数来控制字符串格式:

FORMAT(LastUpdateTimestamp,'O') AS LastUpdateTimestamp

关于c# - SQL Server datetimeoffset 和 json 自动将 datetimeoffset 更改为 datetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50629455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com