mysql的DATETIME和TIMESTAMP数据类型有什么区别

MySQL :: MySQL 8.2 Reference Manual :: 11.2.2 The DATE, DATETIME, and TIMESTAMP Types

  • 都可以表示日期和时间:DATETIMETIMESTAMP 数据类型都可以保存包含日期和时间的部分,格式为'YYYY-MM-DD hh:mm:ss .*`fraction`* ',其中.*`fraction`*代表可选的小数部分,即可以到微妙,例如2038-01-19 03:14:07.499999
  • 表示的时间范围不同:DATETIME 可以表示的时间范围是从'1000-01-01 00:00:00.000000''9999-12-31 23:59:59.499999',而TIMESTAMP可以表示的时间范围是从'1970-01-01 00:00:01.000000'到'2038-01-19 03:14:07.499999'。
  • 存储和显式方式有区别:MySQL在保存TIMESTAMP的时候,是将当前的时区转换为UTC时间存储,显示的时候又从UTC转换到当前时区,而DATETIME 没有这种转换过程。如果先保存了TIMESTAMP的值,然后改变时区,再取回TIMESTAMP的值,会跟存储的不同,这因为存储转换的时区和取回的转换时区不同。
  • 存储需求不同:

MySQL :: MySQL 8.2 Reference Manual :: 11.7 Data Type Storage Requirements

| Data Type | Storage Required Before MySQL 5.6.4 | Storage Required as of MySQL 5.6.4 |
| YEAR | 1 byte | 1 byte |
| DATE | 3 bytes | 3 bytes |
| TIME | 3 bytes | 3 bytes + fractional seconds storage |
| DATETIME | 8 bytes | 5 bytes + fractional seconds storage |

TIMESTAMP 4 bytes 4 bytes + fractional seconds storage
相关推荐
chushiyunen12 分钟前
高斯数据库笔记、gaussDb
数据库·笔记
ZengLiangYi16 分钟前
本地向量数据库选型:vectra vs chroma vs hnswlib
javascript·数据库·后端
TDengine (老段)1 小时前
TDengine 逻辑计划生成 — 从 AST 到关系代数算子树
大数据·数据库·物联网·wpf·时序数据库·tdengine·涛思数据
折戟不必沉沙1 小时前
mysql忘记密码
数据库·mysql
kuonyuma1 小时前
MyBatis入门·注解操作
java·spring boot·mysql·spring·mybatis
聪明努力的积极向上1 小时前
【claude code】MySQL MCP 配置完整指南
数据库·mysql·ai编程
AC赳赳老秦1 小时前
OpenClaw + 阿里云 OSS 自动化:批量上传下载文件、自动备份本地数据到云端
运维·数据库·阿里云·自动化·云计算·deepseek·openclaw
数智化管理手记1 小时前
三步轻量化落地法!精益赋能数字化,让工厂转型告别形式化
运维·数据库·人工智能·精益工程
又至冬日1 小时前
鸿蒙(HarmoneyOS),封装一个通用关系型数据库操作类
数据库·oracle·harmonyos
Nontee1 小时前
新手数据库避坑指南:通俗理解“页分裂”与“数据碎片”
数据库·oracle