How do you obtain the maximum possible date in Ora

2019-01-19 10:00发布

问题:

Is there a function built into Oracle that will return the highest possible date that may be inserted into a date field?

回答1:

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

Note that minimal date is much more simple:

SELECT  TO_DATE(1, 'J')
FROM    dual


回答2:

From the 11g docs:

Oracle Database can store dates in the Julian era, ranging from January 1, 4712 BCE through December 31, 9999 CE (Common Era, or 'AD').

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



回答3:

I do not know of a function but according to this article:

Oracle 7: from January 1, 4712 BC to December 31, 4712 AD.
Oracle 8: from January 1, 4712 BC to December 31, 9999 AD.
Oracle 9: from January 1, 4712 BC to December 31, 9999 AD.
PL/SQL: from January 1, 4712 BC to December 31, 9999 AD.



回答4:

Another ways, just for fun:

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

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


回答5:

In Julian format (JDDD) the max Oracle date is 2086307365.