Resuelto el misterio del año 0000!.
SQL> select * from zero_leap_year
2 where to_char(date_year,’yyyy’)=’0000′ and rownum<6;
DATE_YEAR
——————–
30-DEC-0000 00:00:00
30-JAN-0000 00:00:00
30-DEC-0000 00:00:00
29-FEB-0000 00:00:00
30-JAN-0000 00:00:00
SQL> insert into zero_leap_year values (to_date(’20-02-0000 00:00:00′,’dd-mm-yyyy hh24:mi:ss’));
insert into zero_leap_year values (to_date(’20-02-0000 00:00:00′,’dd-mm-yyyy hh24:mi:ss’))
*
ERROR at line 1
ORA-01841 :(full) year must be between -4713 and +9999, and not be 0
SQL> insert into zero_leap_year values (to_date(’29-02-2007 00:00:00′,’dd-mm-yyyy hh24:mi:ss’));
insert into zero_leap_year values (to_date(’29-02-2007 00:00:00′,’dd-mm-yyyy hh24:mi:ss’))
*
ERROR at line 1:
ORA-01839: date not valid for month specified
SQL> select (TO_DATE(’01/01/0001 00:00:00′, ‘DD/MM/YYYY HH24:MI:SS’) – 1) from dual;
(TO_DATE(’01/01/0001
——————–
31-DIC-0000 00:00:00
No sólo eso… ese año 0000 que no existe en la historia, según Oracle, es bisiesto!
SQL> select (TO_DATE(’01/01/0001 00:00:00′, ‘DD/MM/YYYY HH24:MI:SS’) – 307) from dual;
(TO_DATE(’01/01/0001
——————–
29-FEB-0000 00:00:00
Esto es un bug en toda regla!
Deja una respuesta