Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Wie SUM() ein TIMEDIFF() für eine Gruppe?

Verwendung:

  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

Schritte:

  1. Verwenden Sie TIME_TO_SEC um TIME für mathematische Operationen in Sekunden umzuwandeln
  2. Summieren Sie die Differenz
  3. Verwenden Sie SEC_TO_TIME um die Sekunden wieder in TIME umzuwandeln

Basierend auf den Beispieldaten hätte ich nur vorgeschlagen:

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