mysql中优先使用datetime存储时间
基于大模型的问答进行了记录。
对为甚timestamp不如datetime好用做了深入了解,再此记录
范围广
‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ 而timestamp
仅支持’1970-01-01 00:00:01’ 到 ‘2038-01-19 03:14:07’ UTC, 存在2038年问题, 不适合长期存储场景timestamp
范围存储不长的原因。底层使用4个字节32位有符号整型存储,若超过范围会内存溢出
存储绝对值
不会进行utc转换。timestamp
会根据utc进行转换,若时区为utc+8, 插入2025-04-18 22:18:00,会被存储为2025-04-19 06:18:00
存储稳定。兼容性好。无溢出风险
- 对于
timestamp
而言旧系统可能不支持时区自动转换
- 对于
性能和存储空间权衡
- datetime占8字节
- timestamp占4个字节。若数据量极大,范围就在区间范围内可考虑