FOR JSON 如何将 SQL Server 数据类型转换为 JSON 数据类型

适用于:SQL Server 2016 (13.x)及更高版本Azure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics(仅限无服务器 SQL 池)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 预览版中的 SQL 数据库

FOR JSON 子句在 JSON 输出中使用以下规则将 SQL Server 数据类型转换为 JSON 类型。

Category SQL Server 数据类型 JSON 数据类型
字符和字符串类型 char、nchar、varchar、nvarchar 字符串
Numeric types int、bigint、float、decimal、numeric number
Bit type bit 布尔值(true 或 false)
日期和时间类型 date、datetime、datetime2、time、datetimeoffset 字符串
Binary types varbinary、binary、image、timestamp、rowversion/ BASE64-encoded string
CLR types geometry、geography、其他 CLR 类型 Not supported. 这些类型将返回错误。

SELECT 语句中,使用 CASTCONVERT,或使用 CLR 属性或方法,将源数据转换为可成功转换成 JSON 类型的 SQL Server 数据类型。 例如,对 geometry 类型使用 STAsText(),或对任何 CLR 类型使用 ToString()。 然后,JSON 输出值的类型将派生自 SELECT 语句中应用的转换的返回类型。
Other types uniqueidentifier, money 字符串

详细了解 SQL 数据库引擎中的 JSON

有关内置 JSON 支持的视觉简介,请参阅以下视频: