Hasil aritmatika timestamp adalah tipe data INTERVAL. Anda memiliki INTERVAL HARI KE DETIK di sana...
Jika Anda ingin jumlah menit, salah satu caranya adalah dengan menggunakan EXTRACT()
, misalnya:
select extract( minute from interval_difference ) * 60
+ extract( hour from interval_difference ) * 60
+ extract( day from interval_difference ) * 60 * 24
from ( select systimestamp - (systimestamp - 1) as interval_difference
from dual )
Atau Anda dapat menggunakan trik dengan tanggal:
select sysdate + (interval_difference * 1440) - sysdate
from (select systimestamp - (systimestamp - 1) as interval_difference
from dual )
Versi "trik" berfungsi karena urutan prioritas operator dan perbedaan antara aritmatika tanggal dan cap waktu.
Awalnya operasi terlihat seperti ini:
date + ( interval * number ) - date
Seperti yang disebutkan dalam dokumentasi:
Oracle mengevaluasi ekspresi di dalam tanda kurung sebelum mengevaluasi yang di luar.
Jadi, operasi pertama dilakukan untuk mengalikan interval dengan 1.440. Interval, yaitu periode waktu diskrit, dikalikan dengan angka adalah periode waktu diskrit lainnya, lihat dokumentasi pada datetime dan aritmatika interval. Jadi, hasil dari operasi ini adalah sebuah interval, meninggalkan kita dengan:
date + interval - date
Operator plus lebih diutamakan daripada minus di sini. Alasan untuk ini mungkin karena interval dikurangi tanggal adalah operasi yang tidak valid, tetapi dokumentasi juga menyiratkan bahwa ini masalahnya (tidak keluar dan mengatakannya). Jadi, operasi pertama yang dilakukan adalah tanggal + interval. Tanggal ditambah interval adalah tanggal. Tinggalkan saja
date - date
Sesuai dokumentasi, ini menghasilkan bilangan bulat yang mewakili jumlah hari. Namun, Anda mengalikan interval asli dengan 1.440, jadi ini sekarang mewakili 1.440 kali jumlah hari yang seharusnya. Anda kemudian pergi dengan jumlah detik.
Perlu diperhatikan bahwa:
Ketika perhitungan interval mengembalikan nilai datetime, hasilnya harus berupa nilai datetime yang sebenarnya atau database mengembalikan kesalahan. Misalnya, dua pernyataan berikutnya mengembalikan kesalahan:
Metode "trik" akan gagal, jarang tapi masih akan gagal. Seperti biasa, sebaiknya lakukan dengan benar.