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

帮忙解决一下 SQL 错误: ORA-01843: ????? 01843. 00000
我用的oracle 11g,用insert插入一条记录的时候,由于日期的格式不符合,报了SQL 错误: 
ORA-01843: ????? 01843. 00000 -  "not a valid month" 这个错。

运行select sysdate from dual;语句的时候,结果如下:
17-11月-12

插入的日期格式为:2012-11-17
我应该怎么做,才能让我插入这种格式的日期的时候不报错?插入 2012-11-17 12:07:30.89格式的又该怎么做呢?
用过alter session set NLS_DATE_FORMAT='YYYY-MM-DD'这种方法,貌似不好用
求高手指点!!
------最佳解决方案--------------------
insert into tablename (datefield...)
value(to_date('2012-11-17','yyyy-mm-dd')...);
------其他解决方案--------------------
引用:
真心感谢你的回复!好用! 如果是2012-11-17 12:07:30.89 格式,12:07:30后面的.89是什么意思呢?


89毫秒
------其他解决方案--------------------
真心感谢你的回复!好用! 如果是2012-11-17 12:07:30.89 格式,12:07:30后面的.89是什么意思呢?
------其他解决方案--------------------
引用:
引用:真心感谢你的回复!好用! 如果是2012-11-17 12:07:30.89 格式,12:07:30后面的.89是什么意思呢?

89毫秒


如果加毫秒后
to_date('2012-11-17 13:05:32.89','yyyy-mm-dd hh24:mi:ss')
也会报错,这个该怎么处理呢
只是to_date('2012-11-17 13:05:32','yyyy-mm-dd hh24:mi:ss')是没问题的