这种问题在我这边不能重现,我的显示没有问题
SQL> SELECT TO_CHAR(SYSDATE-40*365,'DD-MM-RRRR') FROM DUAL;TO_CHAR(SY
----------
08-04-1964SQL> SELECT TO_CHAR(SYSDATE-40*365,'DD-MM-RR') FROM DUAL;TO_CHAR(
--------
08-04-64SQL> SELECT TO_CHAR(SYSDATE-40*365,'DD-MM-YYYY') FROM DUAL;TO_CHAR(SY
----------
08-04-1964
SQL> SELECT TO_CHAR(SYSDATE-40*365,'DD-MM-RRRR') FROM DUAL;TO_CHAR(SY
----------
08-04-1964SQL> SELECT TO_CHAR(SYSDATE-40*365,'DD-MM-RR') FROM DUAL;TO_CHAR(
--------
08-04-64SQL> SELECT TO_CHAR(SYSDATE-40*365,'DD-MM-YYYY') FROM DUAL;TO_CHAR(SY
----------
08-04-1964
------------------------------
1987-10-10rr --其它世纪中年份的最后两位数字
(操作系统Windows2000 server,Oracle9i Relase 2)
SQL> select to_char(hire_date,'DD-MM-YYYY') "Hire Date" from employees;Hire Date
----------
17-06-2087
21-09-2089
13-01-2093
03-01-2090
21-05-2091
07-02-2099
update employees set hire_date=add_months(hire_date,-1200) where hire_date>sysdate;
不过,如果有2月最后一天且更改前后有闰年变化时,日期会变一天。