Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So berechnen Sie den Zeitunterschied zwischen der aktuellen und der vorherigen Zeile in MySQL

Um den Zeitunterschied in Minuten zwischen der aktuellen und der vorherigen Zeile zu erhalten, können Sie timestampdiff verwenden auf datenow und die vorherige Zeit, die Sie über die Unterabfrage erhalten können:

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

Aktualisieren

Hier ist eine andere Möglichkeit, eine Variable zu verwenden, um den vorherigen datenew zu speichern Wert, der schneller sein könnte:

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