0

我有一个秒列,我需要以某种可读的格式显示。

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(
4

2 回答 2

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

于 2013-04-07T17:42:46.733 回答
0

查看MySQL 手册了解时间和日期函数。例如,SEC_TO_TIMETO_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")))
于 2013-04-07T17:07:18.847 回答