I have a DATE column that I want to round to the next-lower 10 minute interval in a query (see example below).
DATE
I managed to do it by truncating the seconds
select trunc(sysdate, 'mi') - numtodsinterval(mod(EXTRACT(minute FROM cast(sysdate as timestamp)), 10), 'minute') from dual;
or even
select trunc(sysdate, 'mi') - mod(EXTRACT(minute FROM cast(sysdate as timestamp)), 10) / (24 * 60) from dual;