gpt4 book ai didi

SQL Server 2016 EscapeCharacter 问题

转载 作者:行者123 更新时间:2023-12-04 23:48:50 25 4
gpt4 key购买 nike

所以我使用'FOR JSON'从SQL server 2016生成一个JSON文件

我已经使用 JSON_QUERY 来包装查询以防止转义字符出现在生成的双引号 (") 之前。这工作正常,只是它们仍然显示为格式化日期的正斜杠 (/)。

需要注意的一件事是,我使用以下方法转换 SQL 中的日期时间对象 CONVERT(VARCHAR, [dateEntity], 101)

一个例子(这是一个子查询)

JSON_QUERY((
SELECT [LegacyContactID]
,[NameType]
,[LastName]
,[FirstName]
,[Active]
,[Primary]
,CONVERT(VARCHAR,[StartDate],101) AS [StartDate]
,CONVERT(VARCHAR,[EndDate],101) AS [EndDate]
FROM [LTSS].[ConsumerFile_02_ContactName]
WHERE [LegacyContactID] = ContactList.[LegacyContactID]
FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER
)) AS ContactName

结果将是
"ContactName": {
"LegacyContactID": "123456789",
"NameType": "Name",
"LastName": "Jack",
"FirstName": "Apple",
"Active": true,
"Primary": true,
"StartDate": "04\/01\/2016",
"EndDate": "04\/30\/2016"
}

我将整个查询包裹在 JSON_QUERY 中以消除转义,但它仍然转义了日期上的正斜杠。

我也将日期作为字符串传递而不进行转换,但仍然得到相同的结果。

任何见解?

最佳答案

一种解决方案是通过使用 the "right" JSON data format 来避免日期中的“/”。

SELECT JSON_QUERY((
SELECT TOP 1 object_id, create_date
FROM sys.tables
FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER
))

结果
{"object_id":18099105,"create_date":"2017-08-14T11:19:22.670"}

关于SQL Server 2016 EscapeCharacter 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38110081/

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