0

我是 SQL 编程的新手,我创建了一个表,我想在其中插入一个日期,例如

create table person (
   PANr integer not null,
   name Varchar(10),
   HNr integer not null,
   stuff_date date,
   constraint P_NR primary key (PANr)
);

插入 Personen 值 ('4711','Andreas''15','31.10.1958');

表的创建工作,但插入命令给出了这个错误:

 SQL Error: ORA-01843: not a valid month
  01843. 00000 -  "not a valid month"

任何想法这里有什么问题?提前致谢

4

3 回答 3

4

使用TO_DATE('31.10.1958', 'DD.MM.YYYY').

于 2013-04-20T13:47:17.827 回答
2

你有另一个错误。

insert into person
values
('4711','Andreas''15','31.10.1958');

首先,你引用你的整数值。这可能会或可能不会导致问题,但这是一个坏主意。其次,Andreas 和 15 之间需要一个逗号。

于 2013-04-20T15:30:26.060 回答
0

如果您不想使用该TO_DATE功能,可以使用以下方法:

ALTER SESSION SET nls_date_format='yyyy-mm-dd';

现在,您的插入语句将如下所示:

INSERT INTO PERSONEN VALUES('4711','Andreas','15','1958-10-31');

如果您想更具体,可以像这样定义日期格式:

ALTER SESSION SET nls_date_format='yyyy-mm-dd hh24:mi:ss';

PS 请注意@Dan Bracuk 的回答。

于 2014-07-24T14:50:01.253 回答