Utiliser :
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
Étapes :
- Utilisez TIME_TO_SEC pour convertir TIME en secondes pour une opération mathématique
- Sommez la différence
- Utilisez SEC_TO_TIME pour reconvertir les secondes en TIME
Sur la base des données de l'échantillon, j'aurais simplement suggéré :
SELECT t.user_id,
TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
FROM MYTABLE t
GROUP BY t.user_id