Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:Como SUM() um TIMEDIFF() em um grupo?


Usar:
  SELECT t.user_id,       
         SEC_TO_TIME(SUM(TIME_TO_SEC(t.endtime) - TIME_TO_SEC(t.starttime))) AS timediff
    FROM MYTABLE t
GROUP BY t.user_id

Passos:
  1. Use TIME_TO_SEC para converter TIME em segundos para operação matemática
  2. Soma a diferença
  3. Use SEC_TO_TIME para converter os segundos de volta para TIME

Com base nos dados de exemplo, eu apenas sugeriria:
  SELECT t.user_id,       
         TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
    FROM MYTABLE t
GROUP BY t.user_id