sql >> Databáze >  >> RDS >> Mysql

Jak vypočítat časový rozdíl mezi aktuálním a předchozím řádkem v MySQL

Chcete-li získat časový rozdíl v minutách mezi aktuálním a předchozím řádkem, můžete použít timestampdiff na datenow a předchozí čas, který můžete získat pomocí dílčího dotazu:

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

Aktualizovat

Zde je další způsob použití proměnné k uložení předchozího datenew hodnota, která by mohla být rychlejší:

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


  1. Změňte spojení nezpracovaných dotazů na laravel Eloquent

  2. optimalizace dotazů – „kde ne“ na sebe

  3. Vyhledat konkrétní hodnotu ve všech polích ve všech tabulkách (Oracle)

  4. Vložení objektu JSON do tabulky MySQL pomocí Angular/PHP