2013-10-04 81 views
1

我创建了如下表:无法插入日期到SQL表

CREATE TABLE match(
match_id NUMBER(4,0), 
match_date DATE, 
attendance NUMBER(6,0), 
stadium_name VARCHAR2(40), 
tournament_id NUMBER(3,0), 
CONSTRAINT match_id_pk PRIMARY KEY(match_id), 
CONSTRAINT match_stadium_name_fk FOREIGN KEY(stadium_name) 
      REFERENCES stadium(stadium_name)); 

我试图插入下面一行:

INSERT INTO match VALUES(1001, '20130515', 90000, 'American Airlines Arena', 001); 

一切我发现告诉我的格式是YYYYMMDD。但是我不断得到ORA-01861:文字不匹配格式字符串。

使用(DESCRIBE match)后,它说,长度仅为7。我认为这应该是10

提前任何帮助感谢。

+0

您是否尝试过供应日期作为''05/15/2013'' – Linger

+0

的是什么只有7长度? –

回答

6

那么,格式YYYYMMDD可能不是数据库日期格式(您应该查找NLS_DATE_FORMAT以查看db日期格式)。

但是在系统级别有一个NLS_DATE_FORMAT,在会话级别有一个(可能是其他的)NLS_DATE_FORMAT

你可以实现你想要使用TO_DATE并指定格式的内容:

INSERT INTO match VALUES(1001, TO_DATE('20130515', 'YYYYMMDD'), 90000, 'American Airlines Arena', 001); 
+0

太棒了!非常感谢你。我的文本似乎只提到TO_DATE查询,我不知道你可以在插入中使用它。 –