Použijte:
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
Kroky:
- Použijte TIME_TO_SEC převést ČAS na sekundy pro matematickou operaci
- Sečtěte rozdíl
- Použijte SEC_TO_TIME pro převod sekund zpět na ČAS
Na základě ukázkových dat bych právě navrhl:
SELECT t.user_id,
TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
FROM MYTABLE t
GROUP BY t.user_id