Как вы получаете максимально возможную дату в Oracle? - PullRequest
23 голосов
/ 26 марта 2009

Есть ли в Oracle встроенная функция, которая будет возвращать максимально возможную дату, которая может быть вставлена ​​в поле даты?

Ответы [ 5 ]

30 голосов
/ 26 марта 2009
SELECT  TO_DATE('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss')
FROM    dual

Обратите внимание, что минимальная дата намного проще:

SELECT  TO_DATE(1, 'J')
FROM    dual
7 голосов
/ 27 марта 2009

Из документов 11g:

База данных Oracle может хранить даты в юлианскую эпоху, начиная с 1 января 4712 г. до н.э. до 31 декабря 9999 г. н.э. (Common Era, или «AD»).

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

2 голосов
/ 27 марта 2009

Другие способы, просто для удовольствия:

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 голосов
/ 26 марта 2009

Я не знаю функции, но согласно этой статье :

Oracle 7: с 1 января 4712 г. до н.э. до 31 декабря 4712 г. н.э.
Oracle 8: с 1 января 4712 г. до н.э. до 31 декабря 9999 г. н.э.
Oracle 9: с 1 января 4712 г. до н.э. до 31 декабря 9999 г. н.э.
PL / SQL: с 1 января 4712 г. до н.э. до 31 декабря 9999 г. н.э.

0 голосов
/ 03 марта 2012

В юлианском формате (JDDD) максимальная дата Oracle составляет 2086307365.

...