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

受服务器模式影响

网上还有还一个TIMESTAMP 和INT比较的例子,timestamp效率比int不会差,而且timestamp有自动更新功能

相同点

TIMESTAMP列的显示格式与datetime列相同。

换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。

不同点

datetime

以”YYYY-MM-DDHH:MM:SS”格式检索和显示datetime值。支持的范围为”1000-01-01 00:00:00″到”9999-12-31 23:59:59″

TIMESTAMP值不能早于1970或晚于2037

TIMESTAMP

1、4个字节储存(Time stamp value is stored in 4 bytes)

2、值以UTC格式保存( it stores the number of milliseconds)

3、时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

datetime

1、8个字节储存(8 bytes storage)

2、实际格式储存(Just stores what you have stored and retrieves thesamething which you have stored.)

3、与时区无关(It has nothing to deal with the TIMEZONEandConversion.)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值