SELECT to_date('13-may-08 12:00:00','DD-Month-YY hh24:mi:ss') FROM dual
报错,
这个日期怎么转换。SELECT to_date('13-1月-08 12:00:00','DD-Month-YY hh24:mi:ss') FROM dual 没问题
oracle 10g。13-JAN-08 12.00.00.000000000 AM 这个格式怎么转成date型。

解决方案 »

  1.   

    SELECT to_date('13-may-08 12:00:00','DD-Month-YY hh24:mi:ss') FROM dual 
    报错什么信息?
      

  2.   

    http://www.pgsqldb.org/pgsqldoc-8.1c/functions-formatting.html
    你的这个错误,估计和nls_lang有关,你修改成英文的应该可以
      

  3.   

    SQL> select to_date('13-may-08 12:00:00','dd-mm-yy hh24.mi.ss','nls_date_language=American') sjsdfdfdfdfdfdfdf from dual;SJSDFDFDFDFDFDFDF
    -----------------
    2008-5-13 12:00:0SQL> 
      

  4.   


    楼上的,我和你答案咋不一样
    SQL> select to_date('13-may-08 12:00:00','dd-mm-yy hh24.mi.ss','nls_date_language=American') sjsdfdfdfdfdfdfdf from dual
    ; SJSDFDFDFD
    ----------
    13-5月 -08
      

  5.   

    SELECT to_timestamp('13-JAN-08 12:00:00.000000000','DD-MM-YY hh24:mi:ss.ff','nls_date_language=American') FROM dual -------------------------
    13-1月 -08 12.00.00.000000000 下午
      

  6.   

    可以按下面来操作“
    1、先查看nls_date_language当前值
    select * from nls_database_parameters where parameter=UPPER('nls_date_language');
    2、改变当前会话的nls_date_format
    alter session set nls_date_format='yyyy-dd-mm hh24:mi:ss';
    3、查看时间
    SQL> select to_date('13-may-08 12:00:00','dd-mm-yy hh24.mi.ss','nls_date_language=American') sjsdfdf
    dfdfdfdfdf from dual;SJSDFDFDFDFDFDFDF
    -------------------
    2008-13-05 12:00:00SQL> 
      

  7.   

    你写的这个语句我在9I上面试了没问题,我估计是10G和9I还是有区别的吧
      

  8.   

    alter session set nls_date_format='yyyy-dd-mm hh24:mi:ss'; 
    要设置一下日期的格式!
      

  9.   

    看了高手的解答豁然开朗。看了一下有关字符集的资料。
    发现原先执行只是在winxp上pl/sQLdevelop中运行出问题,unix上通过sqlplus登陆,运行SELECT to_date('13-may-08 12:00:00','DD-Month-YY hh24:mi:ss') FROM dual;没问题。是winxp的字符集与oracle server的不匹配。
    1、查询oracle server端的字符集
    select userenv(‘language’) from dual;
    AMERICAN_AMERICA.AL32UTF8
    2、查询oracle client端的字符集
    unix环境:echo $NLS_LANG
    American_America.ZHS16GBK,运行没问题。
    winxp环境:注册表里面相应OracleHome的NLS_LANG
    SIMPLIFIED CHINESE_CHINA.ZHS16GBK 
    因为不一致,所以报错了。对于AMERICAN_AMERICA.AL32UTF8,American_America.ZHS16GBK 这两者不一致,会有什么影响,有空再慢慢研究。