在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语法中缺少什么吗?
答案 0 :(得分:3)
好像返回的dt
的值不是NULL
,而是''
,日期是1900-01-01
。试试:
SELECT CONVERT(date,'');
您可以在NULLIF
的值附近使用dt
:
SELECT @dt = NULLIF(dt,'')...