如有个字符串其格式为“ 10-1月 -09 ”,如何把该字符串转换为ORACLE的日期格式。TO_DATE() ,参数如何设置?

解决方案 »

  1.   

    这就是oracle的日期格式。alter session set nls_date_format='';
    更改session日期显示格式(仅对当前session有效)alter system set nls_date_format='';
    更改系统日期显示格式(对所有session均有效)
    SQL> select sysdate from dual;SYSDATE
    --------------
    28-1月 -10SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE
    -------------------
    2010-01-28 11:04:13SQL> alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE
    -------------------
    2010/01/28 11:04:27SQL> alter session set nls_date_format='mm-dd-yyyy hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE
    -------------------
    01-28-2010 11:04:41SQL>
      

  2.   


    to_date('10-1月 -09','yy-mon-dd')
      

  3.   

    SELECT to_date('28-12月 -10','dd-mon-yy') FROM dual;
    可以。
    谢谢了!
      

  4.   

    select to_date( '10-1月 -09 ','yy-mon-dd','nls_date_language=''SIMPLIFIED CHINESE''') from dual;
    如果nls_date_language格式不对应,可以这么指定
      

  5.   

    --如果一不小心在将日期型值插入一个字符字段,就会变成楼主所述情况
    --可以用如下方式来转,a为要转换的字段
    select to_date(substr(a,-2)||lpad(substr(a,4,instr(a,'月')-4),2,'0')||substr(a,1,2),'yymmdd') from test;
      

  6.   

    to_date('10-2月 -09','yy-mon-dd')