MYSQL Seconds列的时间

时间:2013-04-07 16:59:10

标签: mysql sql sqldatetime

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

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(

2 个答案:

答案 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_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")))