本文介紹了如何在SQL Server中將日期從varchar轉(zhuǎn)換為DateTime2?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
如何將此類日期值從varchar轉(zhuǎn)換為DateTime2?
WITH dates AS (
SELECT '6.7.2012' AS dtm
UNION
SELECT '13.2.2012' AS dtm
UNION
SELECT '3.12.2012' AS dtm
UNION
SELECT '20.11.2012' AS dtm
)
SELECT CAST(dtm as datetime2) FROM dates
;
這將導(dǎo)致錯誤:
消息241,16級,州1,6線
從字符串轉(zhuǎn)換日期和/或時間時轉(zhuǎn)換失敗。
推薦答案
使用try_convert而不是cast:
WITH dates AS (
SELECT '6.7.2012' AS dtm
UNION
SELECT '13.2.2012' AS dtm
UNION
SELECT '3.12.2012' AS dtm
UNION
SELECT '20.11.2012' AS dtm
)
SELECT TRY_CONVERT(datetime2, dtm, 104) FROM dates
;
結(jié)果:
13.02.2012 00:00:00
20.11.2012 00:00:00
03.12.2012 00:00:00
06.07.2012 00:00:00
注意:try_Convert是在2012版本中引入的,對于較早的版本,您需要使用convert,如果無法使用指定的樣式轉(zhuǎn)換varchar值,則可能會出現(xiàn)異常。
這篇關(guān)于如何在SQL Server中將日期從varchar轉(zhuǎn)換為DateTime2?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,






