Есть ли встроенная в Oracle функция, которая вернет максимально возможную дату, которая может быть вставлена в поле даты?
Как вы получаете максимально возможную дату в Oracle?
Ответ 1
SELECT TO_DATE('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss')
FROM dual
Обратите внимание, что минимальная дата намного проще:
SELECT TO_DATE(1, 'J')
FROM dual
Ответ 2
Из документов 11g:
База данных Oracle может хранить даты в юлианскую эпоху, начиная с 1 января 4712 г. до н. э. до 31 декабря 9999 г. н.э. (общая эра или "AD" ).
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#i1847
Ответ 3
Другие способы, просто для удовольствия:
SELECT to_date(5373484, 'J') + (1 - 1/24/60/60)
FROM dual;
SELECT date '9999-12-31' + (1 - 1/24/60/60)
FROM dual;
Ответ 4
Я не знаю функции, но согласно в этой статье:
Oracle 7: с 1 января 4712 г. до 31 декабря 4712 г. н.э. Oracle 8: с 1 января 4712 г. до н.э. до 31 декабря 9999 г. н.э. Oracle 9: с 1 января 4712 г. до 31 декабря 9999 г. н.э. PL/SQL: с 1 января 4712 г. до 31 декабря 9999 г. н.э.
Ответ 5
В юлианском формате (JDDD) максимальная дата Oracle составляет 2086307365.