Se você tem dois valores temporais, um horário de saída e outro de chegada, e deseja saber qual foi o tempo decorrido entre os dois, use a função TIME_TO_SEC() e sua contraparte SEC_TO_TIME().
Ambas, presentes no MySQL (desde a versão 3.22), oferecem uma forma (entre outras) de fazer cálculos envolvendo valores temporais, como horários e datas inteiras.
Você pode ver outros exemplos de uso destas funções aqui.
Se você quer adicionar 3 horas a um horário 15:35:00, não é possível fazer isto apenas somando 15:35:00 + 3
— são unidades diferentes, afinal.
É aí que entra a função TIME_TO_SEC() — ela converte os valores para segundos.
Quando todas as grandezas envolvidas na operação estão usando a mesma unidade, é possível realizar qualquer conta.
SET @HoraSaida='15:20:00'; SET @HoraChegada='17:20:00'; SELECT @HoraSaida, @HoraChegada, TIME_TO_SEC(@HoraChegada) - TIME_TO_SEC(@HoraSaida) AS "Tempo decorrido em segundos"; _
+------------+--------------+-----------------------------+ | @HoraSaida | @HoraChegada | Tempo decorrido em segundos | +------------+--------------+-----------------------------+ | 15:20:00 | 17:20:00 | 7200 | +------------+--------------+-----------------------------+ 1 row in set (0.00 sec)
Ao terminar de realizar as operações aritméticas, você converte de volta, usando SEC_TO_TIME() — e voilá (desculpe o clichê) você tem um resultado apresentável, no formato de horário.
SELECT @HoraSaida, @HoraChegada, SEC_TO_TIME(TIME_TO_SEC(@HoraChegada) - TIME_TO_SEC(@HoraSaida)) AS "Tempo decorrido em horas"; _
+------------+--------------+--------------------------+ | @HoraSaida | @HoraChegada | Tempo decorrido em horas | +------------+--------------+--------------------------+ | 15:20:00 | 17:20:00 | 02:00:00 | +------------+--------------+--------------------------+ 1 row in set (0.00 sec)
Note que intervalos de tempo decorrido podem ser negativos — para isto basta que o primeiro valor de horário seja posterior ao segundo. Ou seja, se você saiu de casa às 7:00:00, pro trabalho, e chegou às 6:45:00, você terá gasto -15 minutos de deslocamento — uma verdadeira viagem no tempo.