Sql Oracle-文字与格式字符串不匹配错误
可能重复:Sql Oracle-文字与格式字符串不匹配错误,sql,database,oracle,date-format,ora-01861,Sql,Database,Oracle,Date Format,Ora 01861,可能重复: 我得到以下错误: INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0) ERROR at line 1: ORA-01861: literal does not match format string ` 第一个字段是日期格式 有什么想法吗 谢谢。试试这个SQL: INSERT INTO CatalogueEntry VALUES(to_date('2001-12-10','
我得到以下错误:
INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0)
ERROR at line 1: ORA-01861: literal does not match format string `
第一个字段是日期格式
有什么想法吗
谢谢。试试这个SQL:
INSERT INTO CatalogueEntry
VALUES(to_date('2001-12-10','yyyy-mm-dd'), 2, 14.99, 1, 0);
在向日期列插入字符串值时,需要使用函数在插入期间将其转换为日期。使用此函数时,您将提供字符串的格式
截止日期()
函数格式:
to_date( string1, [ format_mask ], [ nls_language ] )
因此,您的查询将如下所示:
insert into CatalogueEntry
values
(
to_date('2001-12-10', 'yyyy-mm-dd'),
2,
14.99,
1,
0);
请参见另一种替代方法是使用ANSI SQL文本:
date'2001-12-10'
@a_horse\u with_no\u namedate
literal取决于NLS_date\u格式设置,因此不能作为OP问题的替代解决方案。@NicholasKrasnov:ANSI日期文本完全独立于任何NLS或其他环境设置(它必须是YYYY-MM-DD
)。因此这是一个有效的替代方案(输入更少,实际上可以在广泛的DBMS中工作)@a_horse_,没有名字哦,当然是:)。出于某种原因,我错误地假设了相反的结果。@horse\u和\u no\u同名,我不知道你可以使用这样的ANSI SQL文本。谢谢你的信息。