--大于等于1950年的都没有问题(但这种写法是不合理的)
insert into aa
select decode('19500101','00000000',null,TO_DATE('19500101','yyyy-mm-dd')) from dual;
--小于1950年就就会呈现错误, 增加了100年
insert into aa
select decode('19491201','00000000',null,TO_DATE('19491201','yyyy-mm-dd')) from dual;
-解决方法
insert into aa
select to_date(decode('19491201','00000000',null,' ',null,'19491201'), 'yyyymmdd') from dual;
select * from aa;
A
-----------
1950-1-1
2049-12-1
1949-12-1