本文介紹了如何在SQL Server中將日期從varchar轉換為DateTime2?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
如何將此類日期值從varchar轉換為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
;
這將導致錯誤:
消息241,16級,州1,6線
從字符串轉換日期和/或時間時轉換失敗。
推薦答案
使用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
;
結果:
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
,如果無法使用指定的樣式轉換varchar值,則可能會出現異常。
這篇關于如何在SQL Server中將日期從varchar轉換為DateTime2?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,