tanpeng

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

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

 

分类:

技术点:

相关文章: