SELECT CONCAT(
FLOOR(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')) / 24), ' days ',
MOD(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')), 24), ' hours ',
MINUTE(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')), ' minutes')
Usa end_time e start_time per i valori datetime fissi nel mio esempio
Secondo i due commenti seguenti, questa soluzione funziona solo per differenze di data entro 35 giorni. Se sai che ci sono più di 35 giorni tra l'inizio e la fine, cioè differenze su un mese, non usarlo. Altre risposte qui utilizzando TIMESTAMPDIFF funzioneranno.