2

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

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
4

1 回答 1

8

我首先将其转换为空值:

select
    case
        when h.sDestructionDate = '01/01/1991' then null
        else h.sDestructionDate
    end as sDestructionDate
from tblDocumentHeader h

然后查看您的报告工具,如果值为null


将数据与演示混合是一个错误。这种方法很简单,并且将数据渲染这两个关注点分开。

于 2013-07-11T07:14:25.273 回答