web-dev-qa-db-ja.com

Oracleで可能な最大の日付をどのように取得しますか?

日付フィールドに挿入できる最も高い日付を返すOracleに組み込まれた関数はありますか?

23
Glenn Wark
SELECT  TO_DATE('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss')
FROM    dual

最小日付ははるかに単純であることに注意してください:

SELECT  TO_DATE(1, 'J')
FROM    dual
31
Quassnoi

11gのドキュメントから:

Oracle Databaseでは、紀元前4712年1月1日から西暦9999年12月31日までのユリウス暦(一般的な時代、または「AD」)の日付を格納できます。

http://download.Oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#i1847

7

私は関数を知りませんが、 この記事 によると:

Oracle 7:紀元前4712年1月1日から紀元前4712年12月31日まで。
Oracle 8:紀元前4712年1月1日から紀元前9999年12月31日まで。
Oracle 9:紀元前4712年1月1日から紀元前9999年12月31日まで。
PL/SQL:紀元前4712年1月1日から紀元前9999年12月31日まで。

2
Andrew Hare

楽しみのための別の方法:

SELECT to_date(5373484, 'J') + (1 - 1/24/60/60)
  FROM dual;

SELECT date '9999-12-31' + (1 - 1/24/60/60) 
  FROM dual;
2
FerranB

ユリウス形式(JDDD)では、Oracleの最大日付は2086307365です。

0
TonyP