Usar:
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
Passos:
- Use TIME_TO_SEC para converter TIME em segundos para operação matemática
- Soma a diferença
- Use SEC_TO_TIME para converter os segundos de volta para TIME
Com base nos dados de exemplo, eu apenas sugeriria:
SELECT t.user_id,
TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
FROM MYTABLE t
GROUP BY t.user_id