日期:2014-05-17  浏览次数:21070 次

Oracle TO_DATE函数表示月份的中英文区别??
创建表  
create   table   insertdate(  
todaydate   date  
);成功  
插入数据  
insert   into   insertdate   values(TO_DATE( '08-DEC-2007 ', 'DD-MON-YYYY '));  
提示:ORA-01843:无效的月份  
换成如下语句  
insert   into   insertdate   values(TO_DATE( '08-8月-2007 ', 'DD-MON-YYYY '));  
可是执行成功。  
分析: '8 '占一个字符, '月 '占两个字符,所以正好与指定的 'MON '三个字符相符。  
但是为什么用 'DEC '三个字符就不行呢?  


------解决方案--------------------
日期的这种格式是和NLS_LANGUAGE有关的

所以一般建议对日期方面的用格式YYYY-MM-DD或者YYYYMMDD等

这样就和那个参数无关了
------解决方案--------------------
同一楼!

另外,那个设置好像还跟机器操作系统的语言区域设置有点关系……
------解决方案--------------------

-- 修改会话的默认日期格式
ALTER SESSION SET nls_date_format = 'YYYY-MM-DD ';
-- 临时改变一下会话的默认语言, 以识别类似 '12-MAY-05 ' 的日期格式
alter session set nls_date_language = 'AMERICAN ';
-- 改回简体中文语言:
alter session set nls_date_language = 'SIMPLIFIED CHINESE ';