sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Hur summerar man () en TIMEDIFF() på en grupp?

Använd:

  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

Steg:

  1. Använd TIME_TO_SEC för att konvertera TID till sekunder för matematisk operation
  2. Summera skillnaden
  3. Använd SEC_TO_TIME för att konvertera sekunderna tillbaka till TIME

Baserat på exempeldata skulle jag bara ha föreslagit:

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


  1. Skapar markör med Dynamic SQL i MySQL

  2. SKAPA TYP på MySQL

  3. De vanligaste frågorna om JAVA/JRE i Oracle Apps

  4. Entity Framework wizard kraschar på MySQL