是否可以转换此日期时间字符串
'20150819130706'
这样的事情
'2015-08-19 13:07:06'
答案 0 :(得分:1)
这是一个选项:
DECLARE @DatetimeString char(14) = '20150819130706'
SELECT LEFT(@DatetimeString, 4) + '-' +
SUBSTRING(@DatetimeString, 5, 2) + '-' +
SUBSTRING(@DatetimeString, 7, 2) + ' ' +
SUBSTRING(@DatetimeString, 9, 2) +':' +
SUBSTRING(@DatetimeString, 11, 2) +':' +
RIGHT(@DatetimeString, 2)
如果你想要一个实际的日期时间值,你可以简单地将整个事物投射到日期时间:
SELECT CAST( LEFT(@DatetimeString, 4) + '-' +
SUBSTRING(@DatetimeString, 5, 2) + '-' +
SUBSTRING(@DatetimeString, 7, 2) + 'T' +
SUBSTRING(@DatetimeString, 9, 2) +':' +
SUBSTRING(@DatetimeString, 11, 2) +':' +
RIGHT(@DatetimeString, 2) As datetime)
注意:要转换为日期时间,您需要将' '
更改为'T'
,请参阅Lad2025的comment此答案。
答案 1 :(得分:0)
Select Convert(varchar(19),
cast(Substring('20150819130706', 1,8)
+ ' ' + Substring('20150819130706',9,2)
+ ':' + Substring('20150819130706',11,2)
+ ':' + Substring('20150819130706',13,2) as datetime),121);
使用此查询。