將文本轉換爲日期時間我需要將轉換文本(VARCHAR
)列到DATETIME
如果一個表達式,且僅當它匹配dd/MM/yyyy
,d/MM/yyyy
,dd/M/yyyy
或d/M/yyyy
。如果它不匹配,那麼我想要一個NULL
。在特定格式
我有這個...
CASE ISDATE([DateField])
WHEN 1 THEN CONVERT(DATETIME,[DateField],103)
ELSE NULL
END
但是失敗了'15/04/76'
例如 - 有錯誤「的轉換從字符串轉換日期時間時失敗」 - 而我希望它返回NULL
示例輸出
'1/6/1976' -> 1976-06-01
'01/06/1976' -> 1976-06-01
'13/06/2001' -> 2001-06-13
'06/13/2001' -> NULL
'13/06/76' -> NULL
是否有強迫ISDATE
來驗證一個給定的格式的一種方式?
The documentation似乎暗示所以...如果與CONVERT函數中使用
ISDATE只有確定性的 CONVERT樣式參數是指定的,風格不等於0,100, 9,或109.
但是ISDATE
只需要一個參數,那麼如果我不這樣做,我該如何「使用它與CONVERT函數」?
請在downvoting時發表評論。這個問題完全有效。 – 2012-03-28 15:14:43
有趣的是,我收到了這個問題的'普遍問題'徽章,它已經收到一個downvote,沒有upvotes ... – 2013-04-04 09:30:10