2017-03-16 15 views
1

enter image description hereISNULL関数が正しい

を返しません。

+8

'''を' DATETIME'にキャストするとき、返される値は '1900-01-01 00:00:00'です。それはあなたがすることを言っていることを正確にしています。おそらくあなたは次のようなものを探しています: 'DobがNull Isである場合 'Else Convert(Varchar(15)、Dob)IsNullとして終了 – Siyual

+0

どうしてここでNULLを抑制しようとしていますか? –

+0

@SeanLangeは年齢とともに患者dobを引っ張っています。患者dobがnullの場合、私は ''を表示したい。ありがとう... –

答えて

1

dobchar/nchar/varchar/nvarcharに変換してisnull()またはcoalesce()を使用する必要があります。

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

実際に日付の値として空の文字列を返す場合は、新しいクエリウィンドウでこれを試すことができます。 NULL値の要件を再現するテーブルを作成し、テーブルを削除する前にその値を選択します。

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 
関連する問題