使用 SQL Case When 和日期

Using SQL Case When with dates

我在查询中有一列,如下所示。

**RCPT_DATE**
NULL
2017-01-09 00:00:00.000
NULL
NULL
1900-01-01 00:00:00.000
1900-01-01 00:00:00.000
1900-01-01 00:00:00.000
2016-09-05 00:00:00.000

我想要做的是摆脱 NULL 值并显示 'Unavailable' 并显示 'No Rcpt' 而不是 '1900-01-01 00:00:00.000'使它看起来更干净的值。

我已经在下面尝试过,但没有任何效果

CASE c.RCPT_DATE
    WHEN '1900-01-01 00:00:00.000' THEN ''
    WHEN NULL Then 'xxx'
    ELSE c.RCPT_DATE
    END AS RCPT_DATE,

我试过了,

CASE c.RCPT_DATE
    WHEN '1900-01-01 00:00:00.000' THEN NULL

这会打印 NULL 而不是 '1900-01-01 00:00:00.000' 值,但这不是我想要的。

感谢任何帮助

谢谢

尝试以下操作:

CASE c.RCPT_DATE
WHEN '1900-01-01 00:00:00.000' THEN 'No Rcpt'
ELSE ISNULL(CAST(c.RCPT_DATE as VARCHAR(50)),'Unavailable')
END AS RCPT_DATE

希望对您有所帮助!

PS - 已编辑,应该有效

我看到这个工作的唯一方法是:

CASE
    WHEN c.RCPT_DATE = '1900-01-01 00:00:00.000' THEN 'No RCPT'
    WHEN C.RCPT_DATE IS NULL THEN 'Unavailable'
    ELSE CONVERT(VARCHAR(30), C.RCPT_DATE, 121)
END

我添加了 CONVERT(),因为您不能在同一列中组合日期和字符串。