Oracle 和 MySQL 中的日期类型比较

Oracle 和 MySQL 都提供了多种日期和时间数据类型,但它们在实现和功能上有一些差异。以下是两者的主要日期类型对比:

Oracle 日期类型

  1. DATE
    • 存储日期和时间(精确到秒)
    • 格式:YYYY-MM-DD HH24:MI:SS
    • 示例:TO_DATE('2023-11-15 14:30:00', 'YYYY-MM-DD HH24:MI:SS')
  2. TIMESTAMP
    • 比 DATE 更精确,可包含小数秒(最多9位)
    • 示例:TIMESTAMP '2023-11-15 14:30:00.123456789'
  3. TIMESTAMP WITH TIME ZONE
    • 包含时区信息
    • 示例:TIMESTAMP '2023-11-15 14:30:00 -05:00'
  4. TIMESTAMP WITH LOCAL TIME ZONE
    • 存储时转换为数据库时区,检索时转换回用户时区
  5. INTERVAL YEAR TO MONTH
    • 存储年-月间隔
    • 示例:INTERVAL '1-2' YEAR TO MONTH (1年2个月)
  6. INTERVAL DAY TO SECOND
    • 存储日-秒间隔
    • 示例:INTERVAL '5 12:30:45.123' DAY TO SECOND (5天12小时30分45.123秒)

MySQL 日期类型

  1. DATE
    • 仅存储日期(不包含时间)
    • 格式:YYYY-MM-DD
    • 示例:'2023-11-15'
  2. TIME
    • 仅存储时间(可包含微秒)
    • 格式:HH:MM:SS.fraction
    • 示例:'14:30:00' 或 '14:30:00.123456'
  3. DATETIME
    • 存储日期和时间(精确到秒或微秒)
    • 格式:YYYY-MM-DD HH:MM:SS.fraction
    • 示例:'2023-11-15 14:30:00' 或 '2023-11-15 14:30:00.123456'
  4. TIMESTAMP
    • 存储日期和时间(1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC)
    • 自动转换为 UTC 存储,检索时转换回当前时区
    • 示例:TIMESTAMP(6) 可存储微秒
  5. YEAR
    • 仅存储年份(1901-2155)
    • 示例:YEAR(4) 存储为4位数年份

主要差异

  1. 精度 :
    • Oracle 的 TIMESTAMP 支持最多9位小数秒
    • MySQL 的 DATETIME/TIMESTAMP 支持最多6位小数秒
  2. 时区处理 :
    • Oracle 有专门的时区感知类型(TIMESTAMP WITH TIME ZONE)
    • MySQL 的 TIMESTAMP 会自动转换时区,DATETIME 不会
  3. 范围 :
    • Oracle DATE 范围:公元前4712年到公元9999年
    • MySQL TIMESTAMP 范围较小(1970-2038年)
  4. 存储 :
    • Oracle DATE 固定占用7字节
    • MySQL DATETIME 占用8字节(无小数秒),TIMESTAMP 占用4字节(无小数秒)

示例用法

Oracle:

复制代码
CREATE TABLE events (
    event_id NUMBER,
    event_date DATE,
    event_timestamp TIMESTAMP,
    event_tz TIMESTAMP WITH TIME ZONE
);

MySQL:

复制代码
CREATE TABLE events (
    event_id INT,
    event_date DATE,
    event_datetime DATETIME(6),
    event_timestamp TIMESTAMP(6)
);
复制代码
选择哪种类型取决于您的具体需求,包括是否需要时区支持、所需精度以及数据范围等因素。
相关推荐
又尔D.18 分钟前
MySQL下载安装
数据库·mysql
Navicat中国22 分钟前
Navicat 数据脱敏打造安全可用的仿真数据环境
数据库·数据安全·navicat·数据脱敏·合规
Elastic 中国社区官方博客26 分钟前
Elastic 线下 Meetup 将于 2026 年 12 月 19 号下午在西安举行
大数据·数据库·elasticsearch·搜索引擎·ai·数据分析·全文检索
云絮.28 分钟前
Mybatis(一)
java·数据库·mybatis
xiangyun6132 分钟前
C++ list 模拟实现(二):const迭代器与反向迭代器,模板的黑魔法
开发语言·数据库·c++·算法·stl·list
Data analyse4561 小时前
Session超时与浏览器休眠的计时校验
大数据·前端·数据库·数据分析
NineData1 小时前
Oracle 实时同步到 Doris 怎么做?全量迁移、CDC 增量复制与数据校验指南
数据库·oracle
码流子1 小时前
高速场景视频接入:GB/T 28181 级联与 RTSP 取流,一条链路讲清楚
大数据·数据库·人工智能·物联网·音视频
m0_752035631 小时前
Redis 数据结构总结
数据结构·数据库·redis