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 ';