我有日期值格式爲'dd-MM-yyyy'的日期字段。如果值包含'1900'或年份爲1900,我需要返回空字符串。如果日期包含'1900',則返回空字符串
我已經嘗試過case語句,它工作正常,但我需要返回''而不是Null。如果我更換空與'然後我得到的正常值不「」
CASE
WHEN CHARINDEX('1900', StartDate) > 0 THEN NULL
ELSE StartDate
END AS SD
我有日期值格式爲'dd-MM-yyyy'的日期字段。如果值包含'1900'或年份爲1900,我需要返回空字符串。如果日期包含'1900',則返回空字符串
我已經嘗試過case語句,它工作正常,但我需要返回''而不是Null。如果我更換空與'然後我得到的正常值不「」
CASE
WHEN CHARINDEX('1900', StartDate) > 0 THEN NULL
ELSE StartDate
END AS SD
如果列是一個日期,你想有一個格式化的值返回,那麼雙方轉換爲相關類型,例如
CASE
WHEN YEAR(StartDate) = 1900 THEN ''
ELSE CONVERT(VARCHAR, StartDate, 105) -- Adjust datetime format to suit -- see also http://msdn.microsoft.com/en-us/library/ms187928.aspx
END AS SD
+1 - 我相信日期時間風格105產生'dd-MM-yyyy'格式OP正在尋找 – Bridge
CASE YEAR(StartDate) WHEN 1900 THEN NULL ELSE StartDate END AS SD
我需要返回空字符串不是'NULL' – user1263981
我錯過了。在這種情況下,羅蘭的答案是你正在尋找的 – dazedandconfused
「_date field_」是指「DateTime」/「Date」還是「varchar」列? –
dateTime數據類型 – user1263981
''對於datetime數據類型是無效值,null或有效日期只是支持的值。 ''是字符數據。你必須將結果類型轉換爲varchar來支持你想要的結果 – xQbert