U kunt afkappen tot de dichtstbijzijnde minuut om de seconden op nul te zetten en vervolgens het aantal minuten aftrekken om terug te gaan naar het dichtstbijzijnde interval van 15 minuten na het uur en vervolgens uw offsets toepassen:
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
Uitgangen:
db<>fiddle hier