带有日期值的sql case语句

带有日期值的sql case语句,sql,sql-server,Sql,Sql Server,我的数据库表中有一个日期列 SELECT sDestructionDate FROM tblDocumentHeader 下面是上述查询的结果 我需要为日期值“1991-01-01”打印空 我希望结果集如下所示 我尝试了下面的查询,但它仍然打印“1991-01-01”日期 SELECT CASE CONVERT(date,h.sDestructionDate,103) WHEN '01/01/1991' THEN '' ELSE CONVERT(date,h.sDestruction

我的数据库表中有一个日期列

SELECT sDestructionDate FROM tblDocumentHeader
下面是上述查询的结果

我需要为日期值“1991-01-01”打印空

我希望结果集如下所示

我尝试了下面的查询,但它仍然打印“1991-01-01”日期

SELECT CASE CONVERT(date,h.sDestructionDate,103) 
WHEN '01/01/1991' 
THEN '' 
ELSE CONVERT(date,h.sDestructionDate,103) END 
AS 'sDestructionDate'
FROM tblDocumentHeader h
我不想将结果转换为varchar值。下面的查询确实给出了结果,但我需要以日期格式返回结果

SELECT CASE CONVERT(varchar,h.sDestructionDate,103) 
WHEN '01/01/1991' 
THEN '' 
ELSE convert(varchar,h.sDestructionDate,103) END 
AS 'sDestructionDate'
FROM tblDocumentHeader h

我首先将其转换为空值:

select
    case
        when h.sDestructionDate = '01/01/1991' then null
        else h.sDestructionDate
    end as sDestructionDate
from tblDocumentHeader h
然后,如果值为
null



将数据与表示混为一谈是错误的。这种方法很简单,将数据和渲染这两个问题分开。

@Bohemian我需要尝试一下,但我仍然需要使用case语句,对吗?
sdesttructionDate
是真实的日期列还是varchar?如果sdesttructionDate是一个日期字段,则查询将是:
在强制转换时('1991-01-01'作为日期),然后为null