Как получить максимально возможную дату в Oracle?

StackOverflow https://stackoverflow.com/questions/687510

  •  22-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

SELECT  TO_DATE(1, 'J')
FROM    dual

Другие советы

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

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

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

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

Оракул 7: с 1 января 4712 г. до н.э. по 31 декабря 4712 г. н.э.
Оракул 8: с 1 января 4712 г. до н.э. по 31 декабря 9999 г. н.э.
Оракул 9: с 1 января 4712 г. до н.э. по 31 декабря 9999 г. н.э.
ПЛ/SQL: с 1 января 4712 г. до н.э. по 31 декабря 9999 г. н.э.

Другие способы, просто для развлечения:

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top