带有日期值的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