mysql - datetime、timestamp区别
平常开发过程中会遇到的问题 TIMESTAMP、DATETIME的选择问题:
相同点:
TIMESTAMP、DATETIME俩者都是表示时间格式为 "YYYY-MM-DD HH:MM:SS"的日期
不同点:
1、显示的时间区间:
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更为合适。
2、存储方式不同:
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出
3、存储长度不一致:
datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。