oracle数据库dd-m月-yy字符串转为日期格式

最近项目提出了个新需求,要根据k表的zfrq字段查询数据,而zfrq这个字段varchar2的日期格式是dd-m月-yy,例子:10-4月 -20或者10-11月-20,所以按日期查询的时候需要转换为日期date格式,下面是已经转换完成可以直接使用的sql语句,用到了sql字符串的截取、合并、去除空格等等,对sql的基础能力有一定考验,故记录一下

select to_date(('20'||substr(k.zfrq,instr(k.zfrq,'-',-1)+1)||case when length(trim(substr(replace(k.zfrq,'月'),instr(replace(k.zfrq,'月'),'-')+1,2)))=2 then trim(substr(replace(k.zfrq,'月'),instr(replace(k.zfrq,'月'),'-')+1,2))else '0'||trim(substr(replace(k.zfrq,'月'),instr(replace(k.zfrq,'月'),'-')+1,2)) end ||substr(k.zfrq,1,2)),'yyyy-mm-dd hh24:mi:ss') from k

你可能感兴趣的:(oracle数据库dd-m月-yy字符串转为日期格式)