mysql数据类型date、datetime、timestamp的区别
DATETIME
同时存储日期和时间,格式为 YYYY-MM-DD HH:MM:SS,精度到秒。
存储范围:从 1000-01-01 00:00:00 到 9999-12-31 23:59:59。
存储大小:5 字节(在新版本中,DATETIME 的内部存储会根据精度有所调整,常见仍为 5 字节)。
优点:不受时区影响,直接按字面值存储和比较,适合记录事件的“确切时间点”。
使用场景:创建时间、日志时间、订单创建时间等需要完整时间戳的场景。
DATE
仅存储日期,格式为 YYYY-MM-DD。不包含时间,如 2025-12-26。
存储范围:从 1000-01-01 到 9999-12-31。
存储大小:3 字节。
典型用途:只需要日期的信息,比如生日、股票交易日期等。
TIMESTAMP
以 UTC 存储时间点,然后在检索时根据会话/连接的时区自动转换为本地时区显示。
存储格式在显示时通常为 YYYY-MM-DD HH:MM:SS,也精确到秒。
存储范围较 DATETIME 宽松,有历史上跨越 1970-01-01 的限制,但在现代版本中已经改进。
会随着连接的时区变化而自动转换:插入时按 UTC 存储,检索时按会话时区显示。
常见配置:可以通过 time_zone 设置来调整时区;也可以在建表时用 DEFAULT CURRENT_TIMESTAMP、ON UPDATE CURRENT_TIMESTAMP 实现自动更新时间戳。如果不是该数据类型,就不能设置DEFAULT CURRENT_TIMESTAMP、ON UPDATE CURRENT_TIMESTAMP。没有设置这个选项。
使用场景:需要统一的时间基准、跨时区应用、日志时间对齐等场景,尤其是需要按时间点跨服务器对齐时。
posted on 2025-12-26 11:21  不将就鸭 阅读(0) 评论(0) 收藏 举报
浙公网安备 33010602011771号