只是想知道如何将日期01/01 / 4000BC插入oracle
尝试过以下但无济于事
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'syyyy/mm/dd'))
我确信我已经错过了一些非常明显的东西,所以一些新鲜的眼睛真的会有所帮助。
谢谢!
答案 0 :(得分:4)
我没有看到你的语法问题。它对我有用:
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>
答案 1 :(得分:2)
INSERT INTO person(birth_date)
VALUES(TO_DATE('4000/01/01 BC', 'yyyy/mm/dd bc'))
答案 2 :(得分:0)
试
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'yyyy/mm/dd'))
或者您可以使用BC表示法 - 请参阅http://rwijk.blogspot.com/2008/10/year-zero.html