我有一个秒列,我需要以一些可读的格式显示。
Table A
Time
259200
select Time from Table A
我需要得到:
3天,00:00:00
我需要没有if > 24
小时。
我尝试了很多方法,但我无法得到正确答案。
我尝试过的一些事情是:
select floor(hour( sec_to_time
Select sec_to_time
SELECT TIME_FORMAT( MAKETIME(
答案 0 :(得分:1)
这个怎么样:
SELECT
CONCAT_WS(' ',
`time` DIV 86400, 'day(s) and',
SEC_TO_TIME(MOD(`time`, 86400)), 'hours'
)
FROM TableName;
time DIV 86400
为您提供天数,SEC_TO_TIME(MOD(``time``, 86400))
为您提供h:m:s
剩余时间。然后就把它们连接起来。
输出:
0 day(s) and 01:50:00 hours
1 day(s) and 10:17:36 hours
101 day(s) and 10:50:32 hours
请参阅sql fiddle。
答案 1 :(得分:0)
检查MySQL manual的时间和日期功能。例如,SEC_TO_TIME
和TO_DAYS
。
更新:
非常对,我误读了。以下是一个可怕的黑客,但应该给你你想要的答案。对于一个真实的系统,我会为此编写一个合适的函数。
concat(floor(hour(sec_to_time(x))/24), " days, ", subtime(sec_to_time(x),concat(floor(hour(sec_to_time(x))/24)*24,":00:00")))