Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Różnica w czasie między rekordami

Oto Oracle 9i+, wykorzystujący funkcję LAG aby uzyskać poprzednią wartość znacznika czasu bez konieczności samodzielnego dołączania:

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

...ale ponieważ liczby całkowite reprezentują liczbę dni w wyniku, różnica mniejsza niż 24 godziny będzie ułamkiem. Ponadto LAG zwróci NULL, jeśli nie ma wcześniejszej wartości -- tak samo, jak przy użyciu OUTER JOIN.

Aby zobaczyć minuty, użyj funkcji ZAOKR:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skonfiguruj mybatis do korzystania z istniejącego połączenia

  2. Skąd można dowiedzieć się o przestarzałych funkcjach nowej wersji Oracle?

  3. Oracle CONNECT BY rekurencyjne zapytanie podrzędne do nadrzędnego, w tym nadrzędny nadrzędny, który odwołuje się do siebie

  4. Oracle Bulk Insert za pomocą SQL Developer

  5. Jak wyświetlić treść funkcji składowanej PL/SQL w Oracle?