在PLSQL Developer中执行select months_between('29-mar-2008','28-feb-2008') from dual报错。

SQL> select months_between('29-mar-2008','28-feb-2008') from dual;

select months_between('29-mar-2008','28-feb-2008') from dual

ORA-01843: 无效的月份


在oracle服务器的sqlplus中执行select months_between('29-mar-2008','28-feb-2008') from dual成功。


解决方法:统一客户端日期的语言

方法一:统一中文

 SELECT TO_DATE('21-5月-2014') FROM dual;

方法二:统一英文

1、修改客户端会话日期的语言: ALTER SESSION SET nls_date_language='american';

2、成功执行: SELECT TO_DATE('21-MAY-2014') FROM dual;