Bạn có thể trừ ngày tháng trong Oracle. Điều này sẽ cung cấp cho bạn sự khác biệt trong ngày. Nhân với 24 để có giờ, v.v.
SQL> select oldest - creation from my_table;
Nếu ngày của bạn được lưu trữ dưới dạng dữ liệu ký tự, trước tiên bạn phải chuyển đổi nó thành một loại ngày.
SQL> select 24 * (to_date('2009-07-07 22:00', 'YYYY-MM-DD hh24:mi')
- to_date('2009-07-07 19:30', 'YYYY-MM-DD hh24:mi')) diff_hours
from dual;
DIFF_HOURS
----------
2.5
Lưu ý :
Câu trả lời này áp dụng cho các ngày được biểu thị bằng kiểu dữ liệu Oracle DATE
.Oracle cũng có kiểu dữ liệu TIMESTAMP
, cũng có thể đại diện cho một ngày (với thời gian). Nếu bạn trừ đi TIMESTAMP
giá trị, bạn nhận được một INTERVAL
; để trích xuất các giá trị số, hãy sử dụng EXTRACT
chức năng.