通过SQL Server查询Oracle链接服务器和日期值



我试图在一个遗留的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

最新更新