1.Oracle里有一张表的字段是Date类型。插入2010-01-01总是报格式不正确。
解决办法有:
1.临时修改
SQL> alter session set nls_date_format='yyyymmdd';
这种方法只能改掉在当前会话里的日期显示格式,当重新建立一个会话的时候,必须重新执行该命令。
2.改变oracle默认的日期显示格式
ON UNIX :
change .profile NSL_DATE_FORMAT=YYYYMMDD;
export NLS_DATE_FORMAT
On windows:
在注册表的KEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0
添加字串值NLS_DATE_FORMAT.将其值设为YYYY-MM-DD-HH24:MI:SS.
或者:initsid.ora 中添加NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss。同时去掉注册表中的NLS_LANG字串值
我采用的修改注册表的方法。
先可以用:select * from v$NLS_Parameters;查询一下:NLS_DATE_FORMAT 值应该为:YYYY-MM-DD HH24:MI:SS
还有一个方法就是利用函数:to_date('2010-01-01','yyyy-mm-dd')