2016-03-31 80 views

回答

3

只需以合适的格式构建一个字符串并使用CONVERT即可。我更喜欢风格126(ISO8601):yyyy-mm-ddThh:mi:ss

-------------------------------------ddmmyyyyhhMMss 
-------------------------------------123456789
DECLARE @charDateTime varchar(50) = '19022016122219'; 
DECLARE @dt datetime; 

-- style 126 (ISO8601) 
-- yyyy-mm-ddThh:mi:ss.mmm (no spaces) 

SET @dt = 
    CONVERT(datetime, 
    SUBSTRING(@charDateTime, 5, 4) + '-' + -- yyyy 
    SUBSTRING(@charDateTime, 3, 2) + '-' + -- mm 
    SUBSTRING(@charDateTime, 1, 2) + 'T' + -- dd 
    SUBSTRING(@charDateTime, 9, 2) + ':' + -- hh 
    SUBSTRING(@charDateTime, 11, 2)+ ':' + -- MM 
    SUBSTRING(@charDateTime, 13, 2)   -- ss 
    ,126); 

SELECT @dt; 

结果

(No column name) 
2016-02-19 12:22:19.000 
+0

好的。谢谢。 – captainsac