我有一个表格,其中包含一个日期数据类型的字段。每当我尝试插入一个月份为8月的记录时,sqlplus会给出错误
insert into hcheckin values ('T00003','C00003',to_date('11-AUG-2006'),'0800');
这是错误消息:
ORA-01858: a non-numeric character was found where a numeric was expected
但是当我输入这条记录时:
insert into hcheckin values ('T00001','C00001',to_date('08-JUN-2006'),'0900');
没有错误。我也试过了其他几个月。当我用AUG插入一个月的数据时,它只会出错。
请帮忙
答案 0 :(得分:0)
您应该依赖默认日期格式,但明确指定:
INSERT INTO hcheckin
VALUES ('T00003', 'C00003', TO_DATE('11-AUG-2006', 'DD-MON-YYYY'), '0800');
根据@ a_horse_with_no_name的评论,更安全的方法是使用数字而不是月份名称(或其缩写):
INSERT INTO hcheckin
VALUES ('T00003', 'C00003', TO_DATE('11-08-2006', 'DD-MM-YYYY'), '0800');