sql - select record for recent n years -
how select records 3 recent years, considering year instead of whole date dd-mm-yy . let's year 2013, query should display records 2013,2012 , 2011. if next year 2014, records shall in 2014, 2013, 2012 , on.... table foo id date ----- --------- a0001 20-may-10 a0002 20-may-10 a0003 11-may-11 a0004 11-may-11 a0005 12-may-11 a0006 12-jun-12 a0007 12-jun-12 a0008 12-jun-12 a0009 12-jun-13 a0010 12-jun-13 i think clearest way use year() function: select * t year("date") >= 2011; however, use of function in where clause prevents index being used. so, if have large amount of data , index on date column, uses current date better. following takes approach: select * t "date" >= trunc(add_months(sysdate, -3*12), 'yyyy')