日期:2014-05-16  浏览次数:20394 次

《Oracle Database 10gSQL开发指南》例子中无效的月份的错误
点击右边红色标题查看本文完整版:《Oracle Database 10gSQL开发指南》例子中无效的月份的错误

从《Oracle Database 10gSQL开发指南》(oracle press出版)P103上照抄一个例子:
select MONTHS_BETWEEN( '25-MAY-2005 ', '15-JAN-2005 ') from dual;

然后放到sql worksheet上运行,居然说 '25-MAY-2005 '是无效的月份。不知道怎么解释这个错误?

运行环境:win xp sp2, oracle 10g



------解决方法--------------------
估计你的language是中文,你可以试试 '25-7月-2005 ',或把SESSION的语言改一下
alter session set nls_language=american;
------解决方法--------------------
select months_between (to_date( '25-05-2005 ', 'DD-MM-YYYY '),to_date( '15-01-2005 ', 'dd-MM-yyyy ')) from dual;
------解决方法--------------------
看看你操作系统的区域设置是什么?
------解决方法--------------------
你的Oracle默认语言是中文,但你插入的是英文习惯的日期,在执行你那条select语句之前先改Session:
alter session set nls_data_language=english;