如何在Oracle中插入BC日期?

时间:2011-07-21 16:31:47

标签: sql oracle

只是想知道如何将日期01/01 / 4000BC插入oracle

尝试过以下但无济于事

INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'syyyy/mm/dd'))

我确信我已经错过了一些非常明显的东西,所以一些新鲜的眼睛真的会有所帮助。

谢谢!

3 个答案:

答案 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