DATETIME与TIMESTAMP的区别

1、两者的存储方式不一样:
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出。

2、存储字节大小不同

数据类型 MySQL 5.6.4之前需要存储 MySQL 5.6.4之后需要存储
DATETIME 8 bytes 5 bytes + 小数秒存储
TIMESTAMP 4 bytes 4 bytes + 小数秒存储
分秒数精度 存储字节大小
0 0 bytes
1,2 1 bytes
3,4 2 bytes
5,6 3 bytes

3、两者所能存储的时间范围不一样:
timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。
datetime所能存储的时间范围为:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。

总结:TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP更为合适。

原文地址:https://www.cnblogs.com/9527l/p/13360178.html