从《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;