----------------------- ----------- ------------------------------
nls_date_format string
nls_date_language string
SQL> show user;
USER is "HR"
SQL> alter session set nls_date_format='MON-DD-YYYY';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
MAY-10-2015
oracle虽然存储了4位年份,但是如果只提供了2位数字,oracle就会根据所使用的格式是YY还是RR来解释世纪:
如果日期中的年份是YY格式,并且只提供了两位年份,那么久认为这一年的世纪和数据服务器上的当前世纪相同,这不必多说。
如果日期中采用的是RR格式,并且只提供了后两位,那么年份中的前两位由两部分决定:
提供年份的两位数字(指定年),数据库服务器上当前日期中年份的后两位数字,规则如下:(设服务器当前日期前两位为F2,指定日期前两位为Z2)
Z2 in (00 ~ 49) F2 IN(00~49) 同世纪 F2
Z2 IN(50 ~99) F2 IN(00 ~ 49) F2-1
Z2 IN(0~49) F2 IN(50~99) F2+1
Z2 IN(50~99) F2 IN(50~99) F2
SQL> select to_char(to_date('05-MAY-15','DD-MM-RR'),'DD-MM-YYYY') FROM DUAL;
TO_CHAR(TO
----------
05-05-2015
SQL> select to_char(to_date('05-MAY-65','DD-MM-RR'),'DD-MM-YYYY') FROM DUAL;
TO_CHAR(TO
----------
05-05-1965
就先总结到这里吧!
|