Oracle的默认日期格式为中文的,如02-11月-03.
在插入如“02-FEB-03”时提示月份格式不对,
请问如何设置使其能接受如02-FEB-03格式的日期?

解决方案 »

  1.   

    to_date('02-FEB-03','dd-mon-yy','NLS_DATE_LANGUAGE = American')
      

  2.   

    C:\Documents and Settings\Admin>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBKC:\Documents and Settings\Admin>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期四 11月 19 19:43:50 2009Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL> conn scott/tiger
    已连接。
    SQL> create table t5(riqi date);表已创建。
    SQL> insert into t5 values('02-FEB-03');      --失败
    insert into t5 values('02-FEB-03')
                          *
    第 1 行出现错误:
    ORA-01843: 无效的月份
    SQL> insert into t5 values(to_date('02-FEB-03','DD-MON-YY'));   --失败
    insert into t5 values(to_date('02-FEB-03','DD-MON-YY'))
                                  *
    第 1 行出现错误:
    ORA-01843: 无效的月份
    SQL> insert into t5 values(to_date('02-FEB-03','DD-MON-YY','nls_date_language=Am
    erican'));已创建 1 行。                   --成功插入SQL> select * from t5;RIQI
    --------------
    02-2月 -03
      

  3.   


    就是让你插入的时候用to_date转换一下。你可以看看#4楼的例子
      

  4.   

    好像有一个命令可以设置Oracle的默认日期格式吧
      

  5.   

    SQL> select sysdate from dual;SYSDATE
    ---------------
    20-NOV-09SQL> alter session set nls_date_format="MON-DD-YYYY";  --更改系统日期默认格式Session altered.SQL> select sysdate from dual;SYSDATE
    -----------------
    NOV-20-2009             --这里可以看到更改已经生效 日期格式和以前有所变化SQL> show parameter nls_date_format   --查询系统日期默认格式NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    nls_date_format                      string      MON-DD-YYYY
    SQL>