在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 语法中缺少某些内容吗?
看起来返回的dt
的值不是NULL
而是''
,作为日期是1900-01-01
。尝试:
SELECT CONVERT(date,'');
您可以在dt
的值周围使用NULLIF
:
SELECT @dt = NULLIF(dt,'')...