我也在Oracle Doc中搜索以下内容:
我知道它的日期是-4712,即1月1日至9999年12月31日,但对于时间戳是什么?
任何有线索或暗示我可以搜索的人吗?
答案 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数据类型的月份和日期,加上小时,分钟和秒值。