評價: 2 回應: 2 閱覽: 404
置頂

MSSQL:如何把數據從varchar改成datatime

各位好

假如我鍵入一個數據

03202012的日期,但該數據的型態是varchar

我現在想將數據轉換為2012-03-20 00:00:00的日期時間

我有嘗試使用CAST(CONVERT(CHAR(10),列101) 為DATATIME

但是出現了錯誤訊息如下:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

請問我要怎麼解決這個問題呢?

 

熱門回應

下面這段SQL應該就是你要的

SELECT convert(datetime, STUFF(STUFF('31012016',3,0,'-'),6,0,'-'), 105)

Result: 2016-01-31 00:00:00.000

 

使用YYYYMMDD的格式,就可以使用了!

DECLARE @myDateString varchar(10) = '03202012';
SELECT cast( substring(@myDateString, 5, 4)+
             substring(@myDateString, 1, 2)+
             substring(@myDateString, 3, 2) AS datetime);

 

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言