ORACLE中怎样改变字符时间为DATE类型

无法将VARCHAR2类型时间更改成DATE类型时间(PL/SQL DEVELOPER)
从csv导过来的时间为VARCHAR2类型 ,在数据库表(表名“收支”)中显示为“19-9月-20” ,列名为“时间”,现打算将其修改为DATE类型,建立新列为“时间2”

运行

img

运行结果及报错内容

img

代码(分开执行)

alter table 收支 add 时间2 date;
update 收支 set 时间2 = to_date(replace(时间,'月',''),'dd-mm-yy');

说明字段中有为0的

你先把所有的“月”在csv里都删掉,这东西认不出来
然后'时间'的引号去掉,否则你是把时间两个字转换,而不是时间列转换

月字识别不了,可以替换掉,年份两位需要用yy,各个部位要对应,你的字符串是 日月年,就应该日月年
select to_date('19-09-20','dd-mm-yy') from dual;

img

9月的月,时间转换的时候识别不了,先把月处理了