【问题标题】:Oracle Timestamp, Max and Minimal ValuesOracle 时间戳、最大值和最小值
【发布时间】:2012-04-03 09:51:51
【问题描述】:

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

  • Oracle 中时间戳的范围是多少?

我知道日期是 -4712,1 月 01 日到 9999 年 12 月 31 日,但是时间戳呢?

任何线索或提示我可以在哪里搜索?

【问题讨论】:

    标签: oracle date timestamp


    【解决方案1】:

    您可以随时尝试:

    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
    

    【讨论】:

    • 谢谢,我附近没有可以尝试的 oracle 服务器,但无论如何都应该记录在案。
    【解决方案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 数据类型的月和日,以及小时、分钟和秒值。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-18
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多