2011-07-21 18 views
2

ちょうど次が、私は私がいくつかの新鮮なきれいな何かを明らかに見逃していると確信しているOracleにBCの日付を挿入するにはどうすればよいですか?

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

無駄にしようとしたことがあり、私はオラクル

に日付01/01/4000BCを挿入する方法を疑問に思いますこれについての目は本当に助けになるでしょう。

ありがとうございます!

+0

WHEREを... INSERTに属していません... – Yahia

+0

私はあなたのインサートがある疑いがあります正しく表示されますが、日付を表示しているときは、BCインジケータを含まない日付形式(おそらくデフォルト)を使用しています。 –

答えて

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> 

正確な問題は何ですか?オラクルのどのバージョンですか?あなたが間違った日付を取得、他の出力にBCまたはSYYYY書式指定子を使用しなければならないの

SQL> select * from tt; 

D 
----------- 
00-h:mm:ss 

SQL> 
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

+0

この文はエラーを返します: 'SQLエラー:ORA-01841:(完全)年は-4713と+9999の間で、0でない必要があります。形式の画像を '' syyyy/mm/dd ''として使うべきです。 –

2
INSERT INTO person(birth_date) 
VALUES(TO_DATE('4000/01/01 BC', 'yyyy/mm/dd bc')) 
+0

@Ricardo:いいえ、私はそれをテストしていません。 –

+0

コメントを削除します。しかし、私もそれをテストし、そのエラーを持っています。あなたのステートメントをコピーし、テーブル名とカラム名だけを変更して貼り付けました。実際には、エラーメッセージは異なります: 'SQLエラー:ORA-01856:BC/B.C。またはAD/A.D。 01856. 00000 - "BC/B.C。またはAD/A.Dが必要" " –

+0

これはおそらくローカリゼーションの問題でしょうか? –

関連する問題