Selecting records where date range is current year minus #years
This will delete anything three years older than January 1st of this year.

DELETE table_name 
WHERE change_date &lt; ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -36);