读书人

Oracle 11g 中to_date() 请问

发布时间: 2013-11-26 22:51:31 作者: rapoo

Oracle 11g 中to_date() 请教
oracle 11g中to_date()的使用:不是格式所要的结果啊???

在sqlplus和SQL Developer中结果是:

SQL> select to_date('11-03-27','yy/mm/dd') day1 from dual;

DAY1
--------------
27-3月 -11
在 PL/SQL Developer 9下的结果是:
SQL> select to_date('11-03-27','yy/mm/dd') day1 from dual;

DAY1
-----------
2011/3/27 星
请教原因!!! Oracle to_date
[解决办法]
引用:
Quote: 引用:

跟你数据库默认的日期显示格式有关。你可以查询NLS_DATE_FORMAT和NLS_DATE_LANGUAGE,select * from V$NLS_PARAMETERS.
SQL> select * from V$nls_Parameters;

PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY ¥
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY ¥
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
看到了,不是可以不用默认的吗?


to_date('11-03-27','yy/mm/dd')这个只是把一个字符串转换成DATE型,数据库显示DATE类型的时候如果你没有指明格式它就会使用默认的日期格式进行显示,你可以再用to_char来指定你需要显示的格式,或者更改NLS_DATE_FORMAT的值
[解决办法]
自己用之前先设置就好了,不用管这些本地化

读书人网 >oracle

热点推荐