Oracle日期格式问题

一、日期格式修改

SQL>select sysdate from dual;

SYSDATE
---------------
19-OCT-09
SQL
>alter session set nls_date_format="MON-DD-YYYY";

Session altered.
SQL
>select sysdate from dual;

SYSDATE
-----------------
OCT-19-2009

SQL
>

二、日期语言问题

以英语显示日期--- alter session set nls_date_language='american';

1,摘要:

在自己电脑上用PL/SQL查询时间报错,报错代码是:ORA-01843: not a valid month

这是因为客户端是中文环境,格式mon就不能用英文的月份写法,必须用中文的六月
如果不想修改sql,那么请修改nls_date_language。详情请继续往下看!

 

执行下面的语句时报错了:

select months_between ('01-SEP-95','11-JAN-94') from dual;

我把日期中的英文月份改为汉字后执行就ok

select months_between ('01-9-95','11-1-94') from dual;

19.6774193548387

 

2,下来我们思考如何才能让日期格式为英文月份的语句正确执行呢?

 

--sql语句修改客户端的nls_date_language即可:

SQL> alter session set nls_date_language='american';

Session altered

到这里就设置好了,下面的语句就能正确执行了!

 

--2008.1.11之后6个月是什么日期

SQL> select ADD_MONTHS ('11-JAN-2008',6) from dual;

ADD_MONTHS('11-JAN-2008',6)

---------------------------

2008-7-11

 

--1994.1.111995.9.1之间总共跨越了几个月

SQL> select months_between ('01-SEP-95','11-JAN-94') from dual;

 

MONTHS_BETWEEN('01-SEP-95','11-JAN-94')

--------------------------------------------

                            19.6774193548387

posted on 2012-02-18 15:31  ChenJW  阅读(1131)  评论(0编辑  收藏  举报

导航