只是想知道我怎麼會插入日期01/01/4000BC到Oracle如何在Oracle中插入BC日期?
曾嘗試以下,但無濟於事
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'syyyy/mm/dd'))
我敢肯定,我已經錯過了很明顯的東西,所以一些新鮮盯着這個真的會有幫助。
謝謝!
只是想知道我怎麼會插入日期01/01/4000BC到Oracle如何在Oracle中插入BC日期?
曾嘗試以下,但無濟於事
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'syyyy/mm/dd'))
我敢肯定,我已經錯過了很明顯的東西,所以一些新鮮盯着這個真的會有幫助。
謝謝!
我看不出這個問題與你的語法。它適用於我:
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as xxx
SQL> CREATE TABLE tt (d DATE);
Table created
SQL> INSERT INTO tt VALUES (to_date('-4700/01/01','syyyy/mm/dd'));
1 row inserted
SQL> SELECT to_char(d, 'MM/DD/YYYY BC') FROM tt;
TO_CHAR(D,'MM/DD/YYYYBC')
-------------------------
01/01/4700 BC
SQL>
你有什麼確切的問題?什麼版本的Oracle?
你有使用上的其他輸出的BC或SYYYY格式說明你會得到不正確的日期:
SQL> select * from tt;
D
-----------
00-h:mm:ss
SQL>
嘗試
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'yyyy/mm/dd'))
或者你可以使用BC符號 - 見http://rwijk.blogspot.com/2008/10/year-zero.html
此語句將返回一個錯誤:'SQL錯誤:ORA-01841:(完整)年必須介於-4713和+9999之間,而不是0'。你應該使用'syyyy/mm/dd''格式圖片 –
INSERT INTO person(birth_date)
VALUES(TO_DATE('4000/01/01 BC', 'yyyy/mm/dd bc'))
@Ricardo:不,我沒有測試過它。 –
好的。我會刪除評論。但我也測試過,發現錯誤。複製你的語句並粘貼它只更改表名和列名。實際上,錯誤消息是不同的:'SQL錯誤:ORA-01856:BC/B.C。或AD/A.D。需要 01856. 00000 - 「BC/B.C。或AD/A.D。required」 –
好吧,這可能是一個本地化問題? –
的WHERE ...不屬於成一個INSERT ... – Yahia
我懷疑你的刀片是工作正常,但是當您查看日期時,您使用的日期格式(可能是默認值)不包含BC指標。 –