sql >> Database >  >> RDS >> Oracle

Verschil in tijd tussen records

Dit is Oracle 9i+, met behulp van de LAG-functie om de vorige tijdstempelwaarde te krijgen zonder zelf lid te hoeven worden:

SELECT t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp) AS diff
  FROM YOUR_TABLE t

...maar omdat hele getallen het aantal dagen in het resultaat vertegenwoordigen, is een verschil van minder dan 24 uur een breuk. De LAG retourneert ook NULL als er geen eerdere waarde is -- hetzelfde als bij het gebruik van een OUTER JOIN.

Gebruik de ROUND-functie om minuten te zien:

SELECT ROUND((t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp)) *1440) AS diff_in_minutes
  FROM YOUR_TABLE t


  1. SQLAlchemy of psycopg2?

  2. Hoe krijg ik de MySQL-tabelstructuur in PHP? Plus een lijst van alle tafels?

  3. MySQL-joinquery met zoals?

  4. CREATE DATABASE-query met java jdbc en voorbereide instructie geeft syntaxisfout terug