日期:2014-05-16  浏览次数:20451 次

MSSQL关于int转换成datetime的问题

数据库里把时间存成了int类型如上图的,我想通过sql语句select到 “  2013-09-29 14:57:06”,
而且如果时间是上午的话TranTime会少一位数,如94412,正常应该是094412;
请问怎么转换才有这种格式,有没有什么办法直接可以一句select出来,
应为查询的结果集里要 “  2013-09-29 14:57:06”这种格式
------解决方案--------------------
right(‘000000’+cast(TranTime as varchar(6)),6)
------解决方案--------------------
试试这个:

select convert(varchar(10),cast(cast(Trandate as varchar) as datetime),120)+' '+
       left(right('000000'+rtrim(TranTime),6),2) + ':'+
   substring(right('000000'+rtrim(TranTime),6),3,2)+':'+
   right('000000'+rtrim(TranTime),2) as v
from 
(
select 20130929 as TranDate,145706 as TranTime 
union all
select 20130929,94412
)t
/*
v
2013-09-29 14:57:06
2013-09-29 09:44:12
*/