sql >> Database teknologi >  >> RDS >> Oracle

Forskel i tid mellem poster

Dette er Oracle 9i+, der bruger LAG-funktionen for at få den tidligere tidsstempelværdi uden at skulle deltage selv:

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

...men fordi hele tal repræsenterer antallet af dage i resultatet, vil en forskel på mindre end 24 timer være en brøkdel. LAG'en vil også returnere NULL, hvis der ikke er nogen tidligere værdi - det samme som hvis du havde brugt en OUTER JOIN.

For at se minutter, brug RUND-funktionen:

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


  1. Transponer en række til mange rækker Oracle

  2. Automatisk generering af svarfil

  3. MySQL Workbench:hvordan viser man advarsler?

  4. Sådan udskrives en MySQL-databasetabel i PHP ved hjælp af PDO