En Oracle podemos convertir fechas en números y aplicarles la aritmética de varias maneras.
Por ejemplo, sysdate-7
nos da la fecha de hace siete días. trunc(some_date)
elimina el elemento de tiempo de una columna de fecha. Y to_char(some_date, 'SSSSS')
nos da su elemento de tiempo como el número de segundos desde la medianoche. Entonces, 06:45:00 son 24300 segundos y 18:15:59 son 69359 segundos (verifique esos números, ya que están en el reverso de un sobre).
De todos modos, poner todo eso junto en una sola consulta como esta...
select *
from your_table
where creation_date >= trunc(sysdate)-7
and to_number(to_char(creation_date, 'sssss')) between 24300 and 69359
... producirá todos los registros creados en la última semana con un elemento de tiempo dentro de las horas principales.