Oracle插入日期数据常见的2个问题和解决方法
1、无效的月份问题
最近在往数据库中插入时间时,Oracle报“无效的月份问题”,具体SQL如下:
INSERT INTO TS_COUNT (
ID,CNAME, STARTTIME, ENDTIME,VALUE
) VALUES (
1, ‘John’, ’01/06/2013′, ’02/06/2013′, 800
);
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’)