【mysql】—— mysql中的timestamp 和 datetime(6) 有什么区别,为什么有的地方不建议使用timestamp
在 MySQL 中,TIMESTAMP
和 DATETIME(6)
都是用于存储日期和时间的数据类型,但它们在存储范围、时区处理、存储方式等方面有显著区别。
1. 核心区别对比
特性 | TIMESTAMP | DATETIME(6) |
---|---|---|
存储范围 | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC(受限于 32 位时间戳) | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59.999999 (范围大得多) |
时区处理 | 存储时会自动转换为 UTC,查询时根据当前会话时区自动转回本地时间(依赖时区设置) | 按实际输入的时间字符串存储,不涉及时区转换(时区无关) |
存储精度 | 默认到秒,支持 TIMESTAMP(n) 扩展到微秒(n=0~6 ),如 TIMESTAMP(6) | 支持微秒级精度(DATETIME(6) 表示精确到微秒) |
存储大小 | 4 字节(基础秒数)+ 额外字节(微秒部分,如 |