В Oracle можем да превърнем датите в числа и да приложим аритметика към тях по различни начини.
Например sysdate-7
ни дава датата преди седем дни. trunc(some_date)
премахва елемента за време от колона с дата. И to_char(some_date, 'SSSSS')
ни дава своя времеви елемент като брой секунди от полунощ. Така че 06:45:00 е 24 300 секунди, а 18:15:59 е 69 359 секунди (моля, проверете тези числа, тъй като те са на гърба на плика).
Както и да е, обединявайки всичко това в една заявка като тази...
select *
from your_table
where creation_date >= trunc(sysdate)-7
and to_number(to_char(creation_date, 'sssss')) between 24300 and 69359
... ще създаде всички записи, създадени през последната седмица с елемент от време в рамките на основните часове.