Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perbedaan waktu antar record

Ini adalah Oracle 9i+, menggunakan fungsi LAG untuk mendapatkan nilai stempel waktu sebelumnya tanpa perlu bergabung sendiri:

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

...tetapi karena bilangan bulat mewakili jumlah hari dalam hasil, selisih kurang dari 24 jam akan menjadi pecahan. Selain itu, LAG akan mengembalikan NULL jika tidak ada nilai sebelumnya -- sama seperti jika menggunakan OUTER JOIN.

Untuk melihat menit, gunakan fungsi ROUND:

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. Pembulatan ke 2 tempat desimal dalam SQL

  2. Bagaimana cara memasukkan dua baris?

  3. (Bahasa Indonesia) Cara menggunakan Oracle Database 19c Pre-Built Developer VM

  4. Delphi - mencegah injeksi SQL

  5. Mengatasi pembatasan penyisipan massal melalui tautan basis data