2

在 SQL Server 中使用 OPENJSON 解析 JSON 字符串时,如果日期字段为空,则 SQL 返回 1900-01-01。

DECLARE @dt [date]
SELECT @dt=dt 
FROM OPENJSON('{"dt":""}')
WITH (dt [date] '$.dt')
PRINT @dt

输出:

1900-01-01

我怎样才能防止这种情况发生?我能想到的一种方法是检查结果值,如果它是“1900-01-01”,则重置为 NULL。虽然我不希望实际日期是 1900-01-01 但这对我来说看起来不正确。我在 SQL 语法中遗漏了什么吗?

4

1 回答 1

4

看起来dt返回的值不是NULL但是'',作为日期是1900-01-01。尝试:

SELECT CONVERT(date,'');

您可以使用NULLIF以下值dt

SELECT @dt = NULLIF(dt,'')...
于 2019-02-07T18:51:58.473 回答