我做了以下內容:如何在Oracle 10g xe中插入日期?
CREATE TABLE BOOK( BOOK_ID VARCHAR(4) PRIMARY KEY, ISBN_10 VARCHAR(10), TITLE VARCHAR(50), CATEGORY VARCHAR(25), PRICE DECIMAL(6,2), BINDING VARCHAR(2), PUB_DATE DATE, AUTHOR_ID SMALLINT, PUBLISHER_ID SMALLINT );
2.
ALTER SESSION SET nls_date_format = 'DD-MM-YYYY HH24:MI:SS';
3.
INSERT INTO BOOK
VALUES('4','123459','INTRODUCTION TO SmallTalk','IT',157.00,'S',**'26-01-1991'**,13,103);
它給了一個錯誤: ORA-01843:不是有效的月份
但是,如果做以下有沒有問題:
查詢:
INSERT INTO
BOOK
VALUES('4','123459','INTRODUCTION TO Small Talk','IT',157.00,'S','**26-JAN-1991**',13,103);
任何人都可以解釋,爲什麼?
對於Oracle的默認NLS日期格式是'DD-MON-YYYY',但是@OldProgrammer建議,最好謹慎一面並使用所選日期掩碼來投射日期字符串。如果將代碼遷移或與其他具有不同日期格式默認值的系統共享源代碼,則信任隱式數據值轉換(如字符串最新操作)可能會導致問題。 –