Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL converte l'output timediff in formato giorno, ora, minuto, secondo

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.