Oracle
 sql >> Database >  >> RDS >> Oracle

SQL:ottieni i record creati nell'intervallo di tempo per date specifiche

In Oracle possiamo trasformare le date in numeri e applicarvi l'aritmetica in vari modi.

Ad esempio sysdate-7 ci dà la data sette giorni fa. trunc(some_date) rimuove l'elemento ora da una colonna data. E to_char(some_date, 'SSSSS') ci dà il suo elemento temporale come il numero di secondi trascorsi dalla mezzanotte. Quindi 06:45:00 è 24300 secondi e 18:15:59 è 69359 secondi (per favore controlla quei numeri, dato che sono il retro di una busta che sta figurando).

Ad ogni modo, mettendo tutto insieme in un'unica query come questa ...

select *
from your_table
where creation_date >= trunc(sysdate)-7
and to_number(to_char(creation_date, 'sssss')) between 24300 and 69359

... produrrà tutti i record creati nell'ultima settimana con un elemento temporale entro le ore core.