我有一个秒列,我需要以某种可读的格式显示。
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(
我有一个秒列,我需要以某种可读的格式显示。
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(
这个怎么样:
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。
查看MySQL 手册了解时间和日期函数。例如,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")))