2016-12-26 1746 views

回答

4
select concat(
    format(floor(s/@day),0), 
    'days ', 
    time_format(sec_to_time(s % @day),'%Hh:%im:%ss') 
) formatted_date 
from (select 1015557 s) t, (select @day = 3600 * 24); 

生产:

+--------------------+                                
| days    |                                
+--------------------+                                
| 11days 18h:05m:57s |                                
+--------------------+ 
5

您可以使用这样的查询:

SELECT 
    DATE_FORMAT(date('1970-12-31 23:59:59') 
    + interval 1015557 second,'%j days %Hh:%im:%ss') as result; 

样品

mysql>  SELECT 
    ->  DATE_FORMAT(date('1970-12-31 23:59:59') 
    ->  + interval 1015557 second,'%j days %Hh:%im:%ss') as result; 
+----------------------+ 
| result    | 
+----------------------+ 
| 011 days 18h:05m:57s | 
+----------------------+ 
1 row in set (0,00 sec) 

mysql> 
+0

谢谢Bernd Buffen,这真的很有帮助! –

1

你可以试试这个:

SET @seconds = 1015557; 
SELECT CONCAT(
      FLOOR(TIME_FORMAT(SEC_TO_TIME(@seconds), '%H')/24), 'days ', 
      MOD(TIME_FORMAT(SEC_TO_TIME(@seconds), '%H'), 24), 'h:', 
      TIME_FORMAT(SEC_TO_TIME(@seconds), '%im:%ss') 
     ) 
AS Result 

的结果应该是:

11days 18h:05m:57s 

希望这有助于!

+0

谢谢Kent Aguilar,这真的很有帮助! –

相关问题