ORA-01861:文字与格式字符串'日期数据类型错误'不匹配

时间:2013-04-27 17:51:54

标签: oracle10g

create table Coordinate_with
(
  cor_id char(6),
  cmp_id char(6),
  start_date date,      
  shifted varchar(10),  
  primary key (cor_id,cmp_id),
  foreign key (cor_id) references Coordinator(cor_id),
  foreign key (cmp_id) references Company(cmp_id)
);

insert into Coordinate_with
values ('COR-01','CMP-02','2009-03-22','Morning');

投掷错误ORA-01861:文字与格式字符串不匹配。

1 个答案:

答案 0 :(得分:5)

当您提供“普通”字符串时,将根据您的NLS设置使用隐式类型转换来转换该值。 (标准)日期文字需要关键字date,后跟以ISO样式(yyyy-mm-dd)格式化的字符串:

insert into Coordinate_with 
  (cor_id, cmp_id, start_date, shifted)
values 
  ('COR-01','CMP-02', DATE '2009-03-22','Morning');

或者,您可以使用to_date()功能:

insert into Coordinate_with 
  (cor_id, cmp_id, start_date, shifted)
values 
  ('COR-01','CMP-02', to_date('2009-03-22', 'yyyy-mm-dd','Morning');



顺便说一下:work_shift可能是shifted更好的列名。我告诉过你,你需要找到一个与列所包含的名称相匹配的名称。