Oracle插入日期数据常见的2个问题和解决方法

1、无效的月份问题

最近在往数据库中插入时间时,Oracle报“无效的月份问题”,具体SQL如下:

代码如下:

INSERT INTO TS_COUNT (   

    ID,CNAME, STARTTIME, ENDTIME,VALUE   

) VALUES (   

    1, 'John', '01/06/2013', '02/06/2013', 800   

); 

报错:ORA-01843:无效的月份。这是由于日期格式不对造成的。

解决办法:
用select sysdate from dual; 查看默认日期格式,然后按系统里的日期格式,输入就可以解决问题了。

2、日期插入格式问题

插入日期格式数据时,报ORA-01861: 文字与格式字符串不匹配。
如果直接按照字符串方式,或者,直接使用to_date('2007-12-28 10:07:24'),没有指定日期格式,就会报错:ORA-01861: 文字与格式字符串不匹配,必须指定日期格式。
如下:

代码如下:

to_date('2007-12-28 10:07:24' , 'yyyy-mm-dd hh24:mi:ss')