sql >> Base de Datos >  >> RDS >> Oracle

SQL:obtenga registros creados en un rango de tiempo para fechas específicas

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.