首页 > 代码库 > Oracle 英文 非标准格式 日期 格式化

Oracle 英文 非标准格式 日期 格式化

最近在处理一张表的时候,需要按照日期排序,日期字段中日期的格式有两种。

格式一: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)

 

Oracle 英文 非标准格式 日期 格式化