Oracle - literal与格式字符串错误不匹配

时间:2012-11-22 18:45:16

标签: sql database oracle date-format ora-01861

  

可能重复:
  Simple Oracle query: literal does not match format string

我收到以下错误:

INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0)

ERROR at line 1: ORA-01861: literal does not match format string `

第一个字段是DATE格式。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:22)

当您将字符串值插入日期列时,您需要使用to_date()函数将其转换为INSERT期间的日期。使用此功能时,您将提供字符串的格式。

to_date()函数格式:

to_date( string1, [ format_mask ], [ nls_language ] )

所以你的查询将是这样的:

insert into CatalogueEntry
values
(
  to_date('2001-12-10', 'yyyy-mm-dd'),
  2,
  14.99,
  1,
  0);

请参阅SQL Fiddle with demo

答案 1 :(得分:1)

试试这个SQL:

INSERT INTO CatalogueEntry 
              VALUES(to_date('2001-12-10','yyyy-mm-dd'), 2, 14.99, 1, 0);