Sql – the difference between oracle’s ‘yy’ and ‘rr’ date mask



select ename from emp where hiredate = todate('01/05/81','dd/mm/yy')


select ename from emp where hiredate = todate('01/05/81','dd/mm/rr')

return different results

Best Answer


YY allows you to retrieve just two digits of a year, for example, the 99 in 1999. The other digits (19) are automatically assigned to the current century. RR converts two-digit years into four-digit years by rounding.

50-99 are stored as 1950-1999, and dates ending in 00-49 are stored as 2000-2049. RRRR accepts a four-digit input (although not required), and converts two-digit dates as RR does. YYYY accepts 4-digit inputs butdoesn't do any date converting

Essentially, your first example will assume that 81 is 2081 whereas the RR one assumes 1981. So the first example should not return any rows as you most likely did not hire any guys after May 1 2081 yet :-)