当使用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
我怎样才能防止这种情况发生?我能想到的一个方法是检查所产生的价值和重置为NULL,如果它是“1900-01-01”。虽然我不指望实际日期是有史以来1900-01-01但这不看我的权利。我缺少的SQL语法的东西吗?
貌似返回的dt
的值不是NULL
但''
,这为日期是1900-01-01
。尝试:
SELECT CONVERT(date,'');
你可以使用NULLIF
周围dt
的价值:
SELECT @dt = NULLIF(dt,'')...