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

¿Cómo podemos obtener el intervalo de tiempo de 15 minutos?

Puede truncar al minuto más cercano para poner a cero los segundos y luego restar la cantidad de minutos para volver al intervalo de 15 minutos más cercano después de la hora y luego aplicar sus compensaciones:

SELECT TRUNC( current_timestamp, 'MI' )
         - MOD( EXTRACT( MINUTE FROM current_timestamp ), 15 ) * INTERVAL '1' MINUTE
         - INTERVAL '30' MINUTE
         + INTERVAL '59' SECOND AS start_time,
       TRUNC( current_timestamp, 'MI' )
         - MOD( EXTRACT( MINUTE FROM current_timestamp ), 15 ) * INTERVAL '1' MINUTE
         - INTERVAL '15' MINUTE
         + INTERVAL '59' SECOND AS end_time,
       current_timestamp
FROM   DUAL

Salidas:

db<>fiddle aquí