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