sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Hvordan SUMMER() en TIMEDIFF() på en gruppe?

Brug:

  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

Trin:

  1. Brug TIME_TO_SEC at konvertere TID til sekunder for matematisk operation
  2. Summer forskellen
  3. Brug SEC_TO_TIME for at konvertere sekunderne tilbage til TIME

Baseret på eksempeldataene ville jeg lige have foreslået:

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


  1. Hvordan IKKE REGEXP virker i MySQL

  2. Sådan gør du sql-mode=NO_ENGINE_SUBSTITUTION permanent i MySQL my.cnf

  3. ADO.NET-udbyderen med det invariante navn 'MySql.Data.MySqlClient' er enten ikke registreret i maskinens eller applikationens konfigurationsfil

  4. Returner ISO-ugenummeret fra en dato i SQL Server (T-SQL)