我试图在一个遗留的Oracle数据库中达到一些数据,该数据库附加到SQL Server作为"链接服务器"。我有一个Oracle表,其中一列是Date
类型。
在我正在构建的查询中,我希望返回列值的"日期"部分或空字符串,如果值为NULL。
我正在尝试:
CASE
WHEN ACCOUNT.DATE_REVOKED IS NULL
THEN ''
ELSE CONVERT(DATE, ACCOUNT.DATE_REVOKED)
END
这适用于具有实际日期的值。对于NULL值,返回"1900/01/01"。如果我不使用CASE
,只返回
CONVERT(DATE, ACCOUNT.DATE_REVOKED)
我将得到日期部分或文本"NULL",至少在SQL Server Management Studio。
我错过了什么?
正如注释所建议的,您不能在日期列中使用空字符串,因此,为什么不使用这个代替:
CASE
WHEN ACCOUNT.DATE_REVOKED IS NULL
THEN NULL
ELSE CONVERT(DATE, ACCOUNT.DATE_REVOKED)
END