首页 > 解决方案 > SQL将军事时间转换为时间

问题描述

我有一个 sql 数据库,其中时钟显示为军事时间,但以数字格式显示。例如90709:07am,或者151415:14pm

有没有办法在 SQL 中转换它?

目前我输出到 excel 并使用下面的公式来计算,但更愿意在 SQL 中完成所有这些

TIMEVALUE(LEFT(IF(LEN(L30)=4,L30,CONCATENATE(0,L30)),2)&":"&MID(IF(LEN(L30)=4,L30,CONCATENATE(0,L30)),3,2)&":"&RIGHT(IF(LEN(L30)=4,L30,CONCATENATE(0,L30)),2))

任何你被占用的帮助

谢谢

标签: sqltimeformat

解决方案


如果要将输出作为time值:

select convert(time, dateadd(second, t/100 * 60 + t % 100, 0))
from (values (907), (1514)) v(t);

如果您只想返回一个字符串:

select stuff(right('0' + convert(varchar(255), t), 4), 3, 0, ':')
from (values (907), (1514)) v(t);

推荐阅读