mysql timestamp和int_mysql中int,DateTime,Timestamp使用区别

时间在我们开发中应用非常普遍,大部分开发中我们将用Mysql的datetime格式来存储,但是对于经常用时间来排序或者查询的应用中,我们要将时间做成索引,这个就跟查询效率很有关系,但是很多程序员会用int来存时间戳,然后再进行处理

1、首先是我们分析datetime长度是8个字节,INT的长度是4个字节,存储空间上比datatime少。

2、int存储索引的空间也比datetime少,排序效率高,查询速度比较快。

3、方便计算,unix时间戳有点就是方便计算。

总结了一下timestamp和datetime的区别:

1、timestamp有范围限制1970 ~ 2037

2、timestamp支持default current_timestamp 来设置默认自动当前时间

3、timestamp支持on update current_timestamp 来设置更新时自动当前时间

4、timestamp时区相关,存储时以UTC时间保持,查询时转换为当前时区,

即如果在东8区的08:00:00分保存的数据,在东9区看到的是09:00:00

5、timestamp 4个字节存储(实际上就是int),datetime 8个字节

6、如果timestamp的值超出范围,mysql不会报错

7、如果是自动更新模式,手动修改数据导致timestamp字段更新

8、同时有两个timestamp字段默认值为current_timestamp会报错

9、如果mysql在maxdb模式下,timestamp等同于datetime,也就是说timestamp

受服务器模

你可能感兴趣的:(mysql,timestamp和int)