2015-11-30 7 views
1

У меня есть пять выходов, как здесь (это запрос TIMEDIFF(out_time, in_time)) ->9:04:04, 8:56:16, 9:43:09, 9:40:03Как преобразовать формат времени в mysql?

, когда я использую этот SUM(TIMEDIFF(out_time, in_time)) as 'Working hours' запрос, чтобы получить сумму этого времени я буду получать , но то, что я хочу, это формат времени 37: 23:32 есть ли какой-нибудь код для этого?

+2

Возможный дубликат [mysql timediff to hours] (http://stackoverflow.com/questions/2174058/mysql-timediff-to-hours) –

+1

http://stackoverflow.com/questions/11579946/only-show -для-в-mysql-fariff –

+0

оба не работают @Panky –

ответ

0

это я сделал его работы

CONCAT(
FLOOR(
SUM(CASE WHEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))<=0 THEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))='' 
ELSE TIME_TO_SEC(TIMEDIFF(out_time,in_time)) END)/3600) ,':', 
FLOOR(MOD(
SUM(CASE WHEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))<=0 THEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))='' 
ELSE TIME_TO_SEC(TIMEDIFF(out_time,in_time)) END),3600)/60)) as 'WORKING HOURS' 
1

Вы можете использовать функцию MySQL SEC_TO_TIME()

SELECT SEC_TO_TIME(SUM(TIMEDIFF(out_time, in_time))) as Working hours

0

попробовать это:

select DATE_FORMAT(FROM_UNIXTIME(SUM(TIMEDIFF(out_time, in_time))) ,'%H:%i:%s') as 'Working hours' 
0

Попробуйте это:

Select SEC_TO_TIME(SUM(TIME_TO_SEC(timediff(out_time, in_time)))) AS workingHours 
+0

1/4/1900 5:12:12 AM :(это wht im gettting –

+0

Попробуйте удалить первый 'SEC_TO_TIME()' like 'Выберите SUM (TIME_TO_SEC (timediff (out_time, in_time))) AS workingHours' , тогда вы получаете время с точки зрения второго, вам просто нужно преобразовать его в часы. –

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