declare @str varchar(20)
set @str='050921123525'
select '20'+left(@str,2)+'-'+ --年
substring(@str,3,2)+'-'+ --月
substring(@str,5,2)+' '+ --日
substring(@str,7,2)+':'+ --小时
substring(@str,9,2)+':'+ --分钟
substring(@str,11,2) --秒/*
-------------------------------
2005-09-21 12:35:25(所影响的行数为 1 行)
*/
set @str='050921123525'
select '20'+left(@str,2)+'-'+ --年
substring(@str,3,2)+'-'+ --月
substring(@str,5,2)+' '+ --日
substring(@str,7,2)+':'+ --小时
substring(@str,9,2)+':'+ --分钟
substring(@str,11,2) --秒/*
-------------------------------
2005-09-21 12:35:25(所影响的行数为 1 行)
*/
set @str='050921123525'
select
dateadd(ss,cast(substring(@str,11,2)as int),
dateadd(mi,cast(substring(@str,9,2)as int),
dateadd(hh,cast(substring(@str,7,2)as int),
cast(left(@str,6) as datetime))))
/*
------------------------------------------------------
2005-09-21 12:35:25.000(所影响的行数为 1 行)
*/
set @str='050921123525'
SELECT cast(stuff(stuff(stuff(@str,7,0,' '),10,0,':'),13,0,':') as datetime)-- 结果: 2005-09-21 12:35:25.000
set @str='050921123525'
SELECT cast(stuff(stuff(stuff(@str,7,0,' '),10,0,':'),13,0,':') as datetime)