Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Jak SUM() i TIMEDIFF() na grupie?

Użyj:

  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

Kroki:

  1. Użyj TIME_TO_SEC przekonwertować CZAS na sekundy dla operacji matematycznych
  2. Podsumuj różnicę
  3. Użyj SEC_TO_TIME przekonwertować sekundy z powrotem na CZAS

Na podstawie przykładowych danych sugerowałbym tylko:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ponowne łączenie na serwerze MySQL przestało istnieć

  2. Niezwykle podstawowy PHP i Mysql

  3. phpMyAdmin zgłasza #2002 nie można zalogować się do serwera mysql phpmyadmin

  4. mysqli_connect():(HY000/2002):Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo

  5. Jak sprawdzić, czy wartość jest liczbą całkowitą w MySQL?