最近在处理一张表的时候,需要按照日期排序,日期字段中日期的格式有两种。
格式一:07-Aug-2015
格式二:10/28/16
日期转化及格式化sql语句:
select to_date('07-Aug-2015','dd-mm-yyyy','NLS_DATE_LANGUAGE = english') 英文日期,
to_date('10/28/16','mm/dd/yy') 日期,
to_char(to_date('07-Aug-2015','dd-mm-yyyy','NLS_DATE_LANGUAGE = english'),'yyyy-mm-dd') 英文日期格式化,
to_char(to_date('10/28/16','mm/dd/yy'),'yyyy-mm-dd') 日期格式化
from dual ;
最后使用instr判断包含-还是/使用不同的转化
to_char((case when instr(pdate,'-')>0 then to_date(pdate, 'dd-mm-yyyy', 'NLS_DATE_LANGUAGE = english')
when instr(pdate,'/')>0 then to_date(pdate,'mm/dd/yy') end),'yyyy-mm-dd')