sql >> Base de Datos >  >> RDS >> Mysql

MySQL:¿Cómo SUM () un TIMEDIFF () en un 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

Pasos:

  1. Utilice TIME_TO_SEC para convertir TIME a segundos para operaciones matemáticas
  2. Suma la diferencia
  3. Utilice SEGUNDOS_A_HORA para convertir los segundos a HORA

Según los datos de muestra, solo habría sugerido:

  SELECT t.user_id,       
         TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
    FROM MYTABLE t
GROUP BY t.user_id