Eu tenho uma view em um projeto onde faço um retorno com a diferença entre duas datas retornando as horas veja se te ajuda:
SELECT
`help_chamado`.`idhelp_chamado` AS `idhelp_chamado`,
`help_chamado`.`help_categorias_idhelp_categorias` AS `help_categorias_idhelp_categorias`,
`help_chamado`.`departamento_iddepartamento` AS `departamento_iddepartamento`,
`help_chamado`.`data_cadastro` AS `data_cadastro`,
HOUR(TIMEDIFF(`help_chamado`.`data_fim`,
`help_chamado`.`data_inicio`)) AS `difhora`,
`help_chamado`.`help_prioridades` AS `help_prioridades`,
`help_chamado`.`data_inicio` AS `data_inicio`,
`help_chamado`.`data_fim` AS `data_fim`,
`help_chamado`.`controle` AS `controle`,
`help_categorias`.`nome_categoria` AS `nome_categoria`,
`help_status`.`descricao_help_status` AS `descricao_help_status`,
`departamento`.`nome_departamento` AS `nome_departamento`,
`sec_users`.`name` AS `name`,
(CASE
WHEN
(TIMEDIFF(`help_chamado`.`data_fim`,
`help_chamado`.`data_inicio`) BETWEEN '00:00:00' AND '02:00:00')
THEN
'Excelente'
WHEN
(TIMEDIFF(`help_chamado`.`data_fim`,
`help_chamado`.`data_inicio`) BETWEEN '02:0:01' AND '04:00:00')
THEN
'Bom'
WHEN
(TIMEDIFF(`help_chamado`.`data_fim`,
`help_chamado`.`data_inicio`) BETWEEN '04:00:01' AND '06:00:00')
THEN
'Aceitável'
WHEN
(TIMEDIFF(`help_chamado`.`data_fim`,
`help_chamado`.`data_inicio`) BETWEEN '06:00:01' AND '08:00:00')
THEN
'Ruim'
WHEN
(TIMEDIFF(`help_chamado`.`data_fim`,
`help_chamado`.`data_inicio`) BETWEEN '08:00:01' AND '10:00:00')
THEN
'Péssimo'
ELSE 'Inaceitável'
END) AS `Ranking`
FROM
((((`help_chamado`
LEFT JOIN `help_categorias` ON ((`help_chamado`.`help_categorias_idhelp_categorias` = `help_categorias`.`idhelp_categorias`)))
LEFT JOIN `help_status` ON ((`help_chamado`.`status_chamados` = `help_status`.`id_help_status`)))
LEFT JOIN `departamento` ON ((`help_chamado`.`departamento_iddepartamento` = `departamento`.`iddepartamento`)))
LEFT JOIN `sec_users` ON ((`help_chamado`.`responsavel` = `sec_users`.`login`)))
WHERE
((`help_chamado`.`data_inicio` <> 'NULL')
AND (`help_chamado`.`data_fim` <> 'NULL'))