Trong Oracle, chúng ta có thể biến ngày tháng thành số và áp dụng số học cho chúng theo nhiều cách khác nhau.
Ví dụ:sysdate-7
cho chúng tôi ngày bảy ngày trước. trunc(some_date)
loại bỏ yếu tố thời gian khỏi cột ngày tháng. Và to_char(some_date, 'SSSSS')
cho chúng ta yếu tố thời gian của nó dưới dạng số giây kể từ nửa đêm. Vì vậy, 06:45:00 là 24300 giây và 18:15:59 là 69359 giây (vui lòng kiểm tra các con số đó, vì chúng là hình vẽ phía sau của một phong bì ').
Dù sao, đặt tất cả lại với nhau trong một truy vấn như thế này ...
select *
from your_table
where creation_date >= trunc(sysdate)-7
and to_number(to_char(creation_date, 'sssss')) between 24300 and 69359
... sẽ tạo ra tất cả các bản ghi được tạo trong tuần trước với yếu tố thời gian trong giờ chính.