Sql-Server

當欄位為空時,SQL Server Isnull 返回 1900-01-01

  • May 4, 2021

當 DOB 欄位為空時,以下程式碼將返回 1900-01-01。我希望(並且期望)它返回一個空字元串(’’),但事實並非如此。我應該如何繼續獲得我想要的結果?

isnull(convert(date,DOB,1),'')

您無法獲得空字元串,因為您DATEISNULL.

根據文件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

引用自:https://dba.stackexchange.com/questions/89942