I Oracle kan vi förvandla datum till tal och tillämpa aritmetik på dem på en mängd olika sätt.
Till exempel sysdate-7
ger oss datumet för sju dagar sedan. trunc(some_date)
tar bort tidselementet från en datumkolumn. Och to_char(some_date, 'SSSSS')
ger oss dess tidselement som antalet sekunder sedan midnatt. Så 06:45:00 är 24 300 sekunder och 18:15:59 är 69 359 sekunder (kontrollera dessa siffror, eftersom de är baksidan av ett kuvert).
Hur som helst, att sätta ihop det hela i en enda fråga så här...
select *
from your_table
where creation_date >= trunc(sysdate)-7
and to_number(to_char(creation_date, 'sssss')) between 24300 and 69359
... kommer att producera alla poster som skapats under den senaste veckan med ett tidselement inom kärntimmar.