Oracle时间戳,最大值和最小值

时间:2012-03-18 18:52:03

标签: oracle date timestamp

我也在Oracle Doc中搜索以下内容:

  • Oracle中的时间戳范围是什么?

我知道它的日期是-4712,即1月1日至9999年12月31日,但对于时间戳是什么?

任何有线索或暗示我可以搜索的人吗?

2 个答案:

答案 0 :(得分:8)

您可以随时尝试:

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

答案 1 :(得分:2)

如果TIMESTAMP的DATE部分的范围小于DATE的范围,那将是令人惊讶的,所以它应该是:

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

假定没有时区; UTC值可能受限于该范围,但东部时区的某个人可能会设法在其时区中看到1000-01-01的数据值。

很难从Oracle网站上找到明确的数据。我在休闲调查中发现的最好的是:

可能还有其他人。


我找到一句话说:

  

TIMESTAMP数据类型

     

TIMESTAMP数据类型是DATE数据类型的扩展。它存储年份,   DATE数据类型的月份和日期,加上小时,分钟和秒值。