2015-12-10 42 views
0

我在Oracle Application Express中創建了一個數據庫,並且在向其中一個表中插入日期時遇到問題。Oracle Application Express - 僅在一個表中存在'ORA-01843:不是有效的月份錯誤'

INSERT INTO VIEWING(VIEWING_ID, VIEWING_DATE, TIME, PROPERTY_ID, AGENT_ID) 
VALUES('3', '12-07-2015' ,'10:00','1', '101'); 

我試過日期格式的每個組合,並試圖之日起生效,以我的正確格式

to_date('12-07-2015','MM-DD-YYYY') 

但沒有什麼工作

CREATE TABLE Viewing (
     Viewing_ID number(10) NOT NULL, 
     Viewing_Date date NOT NULL, 
     Time   timestamp(7) NOT NULL, 
     Property_ID number(10) NOT NULL, 
     Agent_ID  number(10) NOT NULL, 
     PRIMARY KEY (Viewing_ID)); 

ALTER TABLE Viewing ADD CONSTRAINT FK_Viewing_Agent_ID FOREIGN KEY (Agent_ID) REFERENCES Agent (Agent_ID); 
ALTER TABLE Viewing ADD CONSTRAINT FK_Viewing_Property_ID FOREIGN KEY (Property_ID) REFERENCES Property (Property_ID); 

的每一個資源,我發現表明它很可能是解析或語法錯誤,但至今沒有任何幫助。

我有架構中的第二張表,我可以插入日期到沒有問題,唯一的區別是該日期是必需的(我已經嘗試使它可以爲空來測試,我仍然得到相同的錯誤)

我應該指出,我對Oracle來說是全新的,這是一個研究項目的一部分。如果我有我的選擇,我會使用SQL Server!但我一直在這個小時,並認爲它的時間承認失敗!

感謝

+0

什麼是在數據庫中的日期格式?當你從'dual'選擇sysdate時返回什麼? –

+0

嗨,12/10/2015已退回,對不起,我應該提到這一點! – Verno

+1

順便說一下,'timestamp'和'date'都包含日期**和**時間。不同之處在於'date'是整秒精度,'timestamp'支持小數秒精度。除了查看時間之外的一段時間,「時間」可能會最好用'viewing_datetime timestamp(7)'代替'viewing_date'。 –

回答

4

正是由於TIME列,而不是VIEWING_DATE。這工作:

INSERT INTO VIEWING(VIEWING_ID, VIEWING_DATE, TIME, PROPERTY_ID, AGENT_ID) 
    VALUES(4, date '2015-12-07' , timestamp '2015-12-07 10:00:00',1, 101); 
+0

非常感謝,我不相信我以前沒有意識到這一點。你剛剛保存了我的電腦。又過了5分鐘,它就出去了! – Verno

+2

另外,如果你只想指定時間,'to_timestamp('10:00','HH24:Mi')''。日期部分將默認爲當前日期。 –

相關問題