Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment calculer la différence de temps entre la ligne actuelle et la ligne précédente dans MySQL

Pour obtenir la différence de temps en minutes entre la ligne actuelle et la ligne précédente, vous pouvez utiliser timestampdiff le datenow et l'heure précédente, que vous pouvez obtenir via une sous-requête :

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

Mettre à jour

Voici une autre façon d'utiliser une variable pour stocker le précédent datenew valeur qui pourrait être plus rapide :

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