例:
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')
返回不同的结果
http://oracle.ittoolbox.com/groups/technical-functional/oracle-dev-l/difference-between-yyyy-and-rrrr-format-519525
YY允许您仅检索一年中的两位数,例如1999年的99位.其他数字(19)将自动分配到当前世纪.RR通过四舍五入将两位数年份转换为四位数年份.
50-99存储为1950-1999,以00-49结尾的日期存储为2000-2049.RRRR接受四位数输入(虽然不是必需的),并按RR转换两位数日期.YYYY接受4位数输入,但不进行任何日期转换
基本上,你的第一个例子假设81是2081而RR则假设1981.所以第一个例子不应该返回任何行,因为你很可能在2081年5月1日之后没有聘请任何人:-)
@ Michael Stum
我的上一次Oracle体验是很久以前的事了
嗯,是吗,在2000年之前?:p
...
你会永远假设19xx吗?
根据您的来源,我们得到以下场景:
USING ENTERED STORED SELECT of date column YY 22-FEB-01 22-FEB-1901 22-FEB-01 YYYY 22-FEB-01 22-FEB-0001 22-FEB-0001 RR 22-FEB-01 22-FEB-2001 22-FEB-01 RRRR 22-FEB-01 22-FEB-2001 22-FEB-2001
/ MP