SQL Server的OPENJSON返回1900-01-01日期类型时,空字符串传递

问题描述 投票:1回答:1

当使用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语法的东西吗?

sql sql-server open-json
1个回答
3
投票

貌似返回的dt的值不是NULL'',这为日期是1900-01-01。尝试:

SELECT CONVERT(date,'');

你可以使用NULLIF周围dt的价值:

SELECT @dt = NULLIF(dt,'')...
© www.soinside.com 2019 - 2024. All rights reserved.