Si lo que quieres es que te devuelva un string del tipo "2 dias 00:00:00 hs.", o bien "2.00:00:00" partiendo de dos datetimes, hay una forma que tiene algo de complejidad:
Código SQL:
Ver originalIF((TIMESTAMPDIFF(SECOND,FECHAINI,FECHAFIN) > 86400),
CONCAT((TIMESTAMPDIFF(SECOND,FECHAINI,FECHAFIN) DIV 86400),'.',
DATE_FORMAT(SEC_TO_TIME((TIMESTAMPDIFF(SECOND,FECHAINI,FECHAFIN) % 86400)),'%T')),
DATE_FORMAT(SEC_TO_TIME((TIMESTAMPDIFF(SECOND,FECHAINI,FECHAFIN) % 86400)),'%T')))
Esto crea un string del tipo "0.00:00:00" sin importar la diferencia de tiempo encontrada (puede funcionar incluso con meses). Lo que hace es hacer una división entera de la diferencia de segundos entre dos fechas determinadas por los segundos de un dia, y eso encadenarla con el resto de una división igual.
De esa forma una cantidad X de segundos se secciona en dos partes: la cantidad de días completos y el tiempo excedente de un día entero.
Es la forma más eficiente que he encontrado hasta ahora, que incluso puede operar en reportes de mucha complejidad sin reducir performance.