sql >> Database >  >> RDS >> Mysql

MySQL:Hoe SOM() een TIMEDIFF() op een groep?

Gebruik:

  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

Stappen:

  1. Gebruik TIME_TO_SEC om TIJD om te zetten in seconden voor wiskundige bewerkingen
  2. Stel het verschil op
  3. Gebruik SEC_TO_TIME om de seconden terug te zetten naar TIJD

Op basis van de voorbeeldgegevens zou ik zojuist het volgende hebben voorgesteld:

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


  1. Wat is de indeling voor de PostgreSQL-verbindingsreeks / URL?

  2. Oracle PLSQL-interviewvragen

  3. Alle tabelnamen in php weergeven vanuit de MySQL-database

  4. Hoe de datum en tijd in SQL Server te formatteren?