sql - SQL将军事时间转换为时间
问题描述
我有一个 sql 数据库,其中时钟显示为军事时间,但以数字格式显示。例如907
是09:07am
,或者1514
是15: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))
任何你被占用的帮助
谢谢
解决方案
如果要将输出作为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);
推荐阅读
- cakephp - CakePHP 3 Plugin CsvView.csv,与许多关系导出
- angular - 在 Angular 材质表中使用过滤器时如何排除 undefined 和 null?
- angular - Angular:无线电输入仅适用于数值
- php - 如何在PHP中将时间字符串转换为sql时间戳
- c# - Microsoft.AspNetCore.Identity.UserManager:警告:用户验证失败:InvalidUserName;InvalidEmail
- r - 转换 1 x 10-10 intp 1E-10
- wso2 - 如何在自定义策略信息点 (PIP) 中使用非 JDBC 连接器
- keycloak - infinispan 域配置示例
- r - 在文件夹中查找数据并提供有关缺失数据的反馈
- c# - 如何修复 Automapper 将连接表映射到 ViewModel