Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изчислим времевата разлика между текущия и предишния ред в MySQL

За да получите разликата във времето в минути между текущия и предишния ред, можете да използвате timestampdiff на datenow и предишния път, който можете да получите чрез подзаявка:

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

Актуализация

Ето друг начин за използване на променлива за съхраняване на предишния datenew стойност, която може да бъде по-бърза:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дизайн на база данни:регистрация и проверка

  2. Zend_Db:Как да се свържа с MySQL база данни през SSH тунел?

  3. MySQL индекси - какви са най-добрите практики според тази таблица и заявки

  4. Задаването на стойността на една колона от всички редове е много бавно

  5. Как избирате всеки n-ти ред от mysql