Sql-Server
當欄位為空時,SQL Server Isnull 返回 1900-01-01
當 DOB 欄位為空時,以下程式碼將返回 1900-01-01。我希望(並且期望)它返回一個空字元串(’’),但事實並非如此。我應該如何繼續獲得我想要的結果?
isnull(convert(date,DOB,1),'')
您無法獲得空字元串,因為您
DATE
從ISNULL
.根據文件,
ISNULL
**返回與 check_expression 相同的類型。**如果提供文字 NULL 作為 check_expression,則返回 replacement_value 的數據類型。如果提供了文字 NULL 作為 check_expression 並且沒有提供 replacement_value,則返回一個 int。
如果您正在檢查該值是否為
NULL
,則無需將其轉換為日期,除非您想返回一個日期值(您似乎不想)。相反,使用:
SELECT ISNULL( DOB , '')
哪個會回來
''
如果值為
NULL
.
NULL
日期是(無NULL
值)。另一方面,一個空字元串的計算結果為0
,在 SQL Server 中它是一個隱含的整數,表示自 以來的天數1900-01-01
。