2014-02-24 43 views
-1

這裏是我創建表查詢:什麼是Oracle中的默認日期格式?

create table emp_company (Ename varchar2(20),Cname varchar2(20),Salary number,Jdate date); 

insert into emp_company values (&ename,&cname,&salary,&jdate); 

Enter value for ename: 'ANIL' 

Enter value for cname: 'ACC' 

Enter value for salary: 1500.00 

Enter value for jdate: '01-05-89' 

old 1: insert into emp_company values (&ename,&cname,&salary,&jdate 

new 1: insert into emp_company values ('ANIL','ACC',1500.00,'01-05- 

insert into emp_company values ('ANIL','ACC',1500.00,'01-05-89') 
                * 
ERROR at line 1: 
ORA-01843: not a valid month 

什麼我錯在這裏做什麼?

+0

我認爲這是Oracle嗎?如果是這種情況,則不存在默認日期格式。 – Ben

+0

請參閱[文檔](http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#BABGIGCJ) – Kermit

+1

默認日期格式的_representation_,僅適用於您的會話...並且它受[NLS_DATE_FORMAT](http://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams122.htm)管轄.. –

回答

0

如果你不知道你的數據庫的默認日期格式,你應該use a mask和TO_DATE()函數,如:

insert into emp_company values ('ANIL','ACC',1500.00,to_date('01-05-89', 'DD-MM-RR')); 

此外,我不知道這是總是如此,但我從未遇到沒有使用'DD-MON-YY'作爲默認日期格式的Oracle數據庫(所以'01 -MAY-89')。

0

我假定您可以使用Oracle SQL Developer,您可以從here下載Oracle SQL Developer。

您可以定義您要使用的日期格式:

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

有了這個,現在你可以這樣執行查詢:

SELECT * FROM emp_company WHERE JDate = '2014-02-25' 

如果您想更具體你可以像這樣定義日期格式:

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