如何将SQL Bigint列转换为天:时:分:秒格式?
将SQL Bigint类型时长转换为天:时:分:秒格式
你的time_Left列是总秒数形式的时长,直接转换datetime类类型无效——因为datetime是用来表示具体时间点的,而非时间间隔。正确做法是通过数学运算拆分出天、时、分、秒后,拼接成目标格式。
实现方案(以SQL Server为例)
SELECT time_Left, CONCAT( -- 计算天数:总秒数除以一天的秒数(86400)取整 FLOOR(time_Left / 86400), ':', -- 计算小时:剩余秒数除以3600取整,补零到2位 RIGHT('0' + CAST(FLOOR((time_Left % 86400) / 3600) AS VARCHAR), 2), ':', -- 计算分钟:剩余秒数除以60取整,补零到2位 RIGHT('0' + CAST(FLOOR((time_Left % 3600) / 60) AS VARCHAR), 2), ':', -- 计算秒数:剩余秒数取余60,补零到2位 RIGHT('0' + CAST(time_Left % 60 AS VARCHAR), 2) ) AS [天:时:分:秒] FROM 你的数据表名;
测试示例结果
- 输入
516542000,输出:5978:09:40:00 - 输入
604744000,输出:6999:08:26:40
其他数据库适配(MySQL)
如果使用MySQL,语法略有不同,用DIV做整数除法、LPAD补零:
SELECT time_Left, CONCAT( time_Left DIV 86400, ':', LPAD((time_Left % 86400) DIV 3600, 2, '0'), ':', LPAD((time_Left % 3600) DIV 60, 2, '0'), ':', LPAD(time_Left % 60, 2, '0') ) AS `天:时:分:秒` FROM 你的数据表名;
内容的提问来源于stack exchange,提问作者user21265764
相关产品推荐
相关产品推荐

