Временная метка Oracle, максимальные и минимальные значения - PullRequest
4 голосов
/ 18 марта 2012

Я искал, также в Oracle Doc, следующее:

  • Каков диапазон меток времени в Oracle?

Я знаю, для даты это -4712, январь-01 до 9999 декабрь-31, но что за метка времени?

Кто-нибудь подсказку или подсказку, где я могу искать?

Ответы [ 2 ]

8 голосов
/ 18 марта 2012

Вы всегда можете просто попробовать:

SQL> select to_timestamp( '9999-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss' ) from dual;

TO_TIMESTAMP('9999-12-3123:59:59','YYYY-MM-DDHH24:MI:SS')
---------------------------------------------------------------------------
31-DEC-99 11.59.59.000000000 PM

и:

SQL> select to_timestamp( '9999-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss' )+1 from dual;
select to_timestamp( '9999-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss' )+1 from dual
                                                                     *
ERROR at line 1:
ORA-01841: (full) year must be between -4713 and +9999, and not be 0
2 голосов
/ 18 марта 2012

Было бы удивительно, если бы диапазон для части DATE TIMESTAMP был меньше, чем диапазон для DATE, поэтому он должен быть:

-4712-01-01 00:00:00  to 9999-12-31 23:59:59.999999

Это предполагает отсутствие часового пояса; значение UTC, вероятно, ограничено этим диапазоном, но кто-то в восточном часовом поясе может увидеть значение данных 1000-01-01 в своем часовом поясе.

Трудно найти точные данные на сайте Oracle. Лучшее, что я нашел в случайном опросе, было:

Возможно, есть и другие.


Я нашел цитату, которая говорит:

TIMESTAMP Тип данных

Тип данных TIMESTAMP является расширением типа данных DATE. Хранит год, месяц и день типа данных DATE, а также значения часов, минут и секунд.

...