Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como calcular a diferença de tempo entre a linha atual e anterior no MySQL


Para obter a diferença de tempo em minutos entre a linha atual e a anterior, você pode usar timestampdiff em datenow e a hora anterior, que você pode obter via 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

Atualizar

Aqui está outra maneira de usar uma variável para armazenar o datenew anterior valor que pode ser mais rápido:
select ticketid, datenew, timestampdiff(minute,datenew,prevdatenew)
from (
    select ticketid, datenew, @prevDateNew as prevdatenew, 
      @prevDateNew := datenew
    from mytable order by ticketid
) t1