sql >> Base de Datos >  >> RDS >> Mysql

Cómo calcular la diferencia de tiempo entre la fila actual y la anterior en MySQL

Para obtener la diferencia de tiempo en minutos entre la fila actual y la anterior, puede usar timestampdiff el datenow y la hora anterior, que puede obtener a través de una subconsulta:

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

Actualizar

Aquí hay otra forma de usar una variable para almacenar el datenew anterior valor que podría ser más rápido:

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