【问题标题】:Data type for oracle datetimeoracle 日期时间的数据类型
【发布时间】:2012-10-31 15:19:15
【问题描述】:

我正在创建一个数据库,但对于在字段中使用日期或时间戳有点困惑。

我需要创建一些触发器来检查可用的日期和时间,所以我认为我可以使用相同的字段来存储这两个值。

我更倾向于使用 TIMESTAMP,因此;

TO_TIMESTAMP('18/03/2012 02:24', 'DD/MM/YYYY HH24:MI')

使用时间戳会比使用日期更好吗?或不同字段中的日期和时间。

干杯

【问题讨论】:

    标签: date oracle11g timestamp


    【解决方案1】:

    DATE 数据类型还存储时间,因此您不需要两个字段。两者的区别在于

    1. 时间戳下降到小数秒
    2. 减去两个时间戳 (timestamp-timestamp) 会产生一个 INTERVAL 数据类型答案。对于日期,您会得到一个以天为单位的数字。
    3. 如果您需要存储时区,则可以使用 TIMESTAMP WITH TIME ZONE,但无法在日期字段中执行此操作。
    4. 日期占用的存储空间略少(7 字节 vs 时间戳 11 字节)(当时间戳的精度 > 0..否则 timestamp(0) 也是 7 字节)

    时间戳数据类型更现代 (ASNI),而 DATE 在 Oracle 中的使用时间更长。

    【讨论】:

    • 请注意,TIMESTAMP 默认扩展为 TIMESTAMP WITH LOCAL TIME ZONETIMESTAMP WITH TIME ZONE 似乎表现为完全独立的数据类型。
    猜你喜欢
    • 1970-01-01
    • 2018-09-24
    • 2012-12-04
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2015-10-06
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多