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

Come calcolare la differenza di tempo tra la riga corrente e quella precedente in MySQL

Per ottenere la differenza di tempo in minuti tra la riga corrente e quella precedente, puoi utilizzare timestampdiff su datenow e l'ora precedente, che puoi ottenere tramite subquery:

select ticketid, datenew,
    timestampdiff(minute,datenew,(select datenew from mytable t2
        where t2.ticketid < t1.ticketid order by t2.ticketid desc limit 1)) as diff
from mytable t1

Aggiorna

Ecco un altro modo per utilizzare una variabile per memorizzare il precedente datenew valore che potrebbe essere più veloce:

select ticketid, datenew, timestampdiff(minute,datenew,prevdatenew)
from (
    select ticketid, datenew, @prevDateNew as prevdatenew, 
      @prevDateNew := datenew
    from mytable order by ticketid
) t1