2017-03-16 119 views
1

enter image description hereISNULL函数不返回正确的

的'请查看下面我原来DOB,ISNULL使用,铸成日期。

+8

当您将''''转换为'DATETIME'时,返回值为'1900-01-01 00:00:00'。它正在做你正在告诉它做的事情。也许你正在寻找像这样的东西:'当Dob是空的情况下'然后'Else转换(Varchar(15),Dob)End Of IsNull' – Siyual

+0

为什么你试图在这里抑制NULL? –

+0

@SeanLange即将带着病人随着年龄增长。当病人dob为空时,我想显示''。谢谢... –

回答

1

您需要将dob转换为char/nchar/varchar/nvarchar类型才能使用isnull()coalesce()

select isnull(convert(varchar(10),dob,120),'') 
1

如果你真的想为日期值返回一个空字符串,你可以在新的查询窗口中试试这个。它创建一个表来重新生成空日期值的需求,然后在删除表之前选择该值。

CREATE TABLE dbo.Test 
(
Id INT IDENTITY(1,1) NOT NULL 
,Date1 DATE NULL 
) 

INSERT INTO dbo.Test(Date1) VALUES ('01/01/2017') 
INSERT INTO dbo.Test(Date1) VALUES ('01/02/2017') 
INSERT INTO dbo.Test(Date1) VALUES (NULL) 
INSERT INTO dbo.Test(Date1) VALUES ('01/04/2017') 

SELECT * FROM dbo.Test 

SELECT Date1 = CASE WHEN date1 IS NULL THEN '' ELSE CAST(DATE1 AS VARCHAR(10)) END from dbo.Test 

DROP TABLE dbo.Test 
go