1
我存儲在varchar
變量沒有任何分隔符的日期值,即在形式ddmmyyyyhhMMss
,像這樣:@charDateTime='19022016122219';
轉換VARCHAR值沒有分隔符(ddmmyyyyhhMMss格式)日期時間
我怎樣才能將其轉換爲DateTime
類型變量?
我存儲在varchar
變量沒有任何分隔符的日期值,即在形式ddmmyyyyhhMMss
,像這樣:@charDateTime='19022016122219';
轉換VARCHAR值沒有分隔符(ddmmyyyyhhMMss格式)日期時間
我怎樣才能將其轉換爲DateTime
類型變量?
只需以合適的格式構建一個字符串並使用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
好的。謝謝。 – captainsac