2013-04-07 2 views
0

У меня есть столбец секунд, и мне нужно отобразить его в некотором читабельном формате.Столбец MYSQL Seconds для времени

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

Возможный дубликат [Расчет относительного времени] (http://stackoverflow.com/questions/11/calculating-relative-time) –

ответ

0

Проверьте MySQL manual для времени и даты функции. Например, SEC_TO_TIME и TO_DAYS.

UPDATE:

Совершенно верно, я неправильно понял. Следующий ужасный взлом, но должен дать вам ответ, который вы хотите. Для реальной системы я бы написал для этого подходящую функцию.

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"))) 
+0

Hi Igelkott, Спасибо за ответ, но не я не смог получить дни и мм : hh: ss :( – user2111815

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.

+0

+1 для отступов и разрывов строк в запросе. SQL тоже язык! – 11684

+0

Спасибо Jurgenreza UR Awesome, он работает в моей командной строке sql through, но через sql workbench он дает BLOB и i Я использую это значение в Ireport и даже там печатает blob :(любые входы будут большой помощью – user2111815

+0

@ user2111815 Проблема BLOB не связана с mysql. см. это сообщение о том, как исправить это: http://stackoverflow.com/questions/10713397/mysql-groupconcat-return-blob-xxxb-kib – jurgenreza

Смежные вопросы