Khi trừ timestamps
giá trị trả lại là interval
loại dữ liệu. Có cách nào thanh lịch để chuyển đổi giá trị này thành tổng số (milli/micro) giây trong khoảng thời gian, tức là số nguyên.Trích tổng số giây từ một kiểu dữ liệu khoảng thời gian
Sau đây sẽ làm việc, nhưng nó không phải là rất khá:
select abs(extract(second from interval_difference)
+ extract(minute from interval_difference) * 60
+ extract(hour from interval_difference) * 60 * 60
+ extract(day from interval_difference) * 60 * 60 * 24
)
from (select systimestamp - (systimestamp - 1) as interval_difference
from dual)
Có một phương pháp đơn giản hơn trong SQL hoặc PL/SQL?
: đâu đó tôi đã tìm thấy này ' chọn (TRUNC (SYSDATE) + out.interv - TRUNC (SYSDATE)) * 86400 từ (chọn systimestamp - (systimestamp -1) làm interv từ kép) out' –
kể từ khi thêm sự trở lại của khoảng thời gian tính bằng giây vào một biến số chính xác cố định, phần phân số thứ hai bị mất trong truy vấn được đề cập trong các ý kiến –