MySQL中的DATETIME与TIMESTAMP总结

MySQL中的基础知识,总结记录 DATETIME 与 TIMESTAMP 相同点、不同点及使用选择,记录如下:

相同

  • TIMESTAMP 数据类型的显示格式与 DATETIME 相同,均包含日期和时间部分的值:YYYY-MM-DD HH:MM:SS,显示宽度固定在19字符。
  • TIMESTAMP 和 DATETIME 列可以自动初始化并更新为当前日期和时间(即当前时间戳)

注:在MySQL 5.6.5版本之前,Automatic Initialization and Updating只适用于TIMESTAMP,而且一张表中,最多允许一个TIMESTAMP字段采用该特性。从MySQL 5.6.5开始,Automatic Initialization and Updating同时适用于TIMESTAMP和DATETIME,且不限制数量;
官方文档中有详细的介绍,链接附在最后。

区别

1. 范围
 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'。
2. 存储

TIMESTAMP

  • 4个字节储存(Time stamp value is stored in 4 bytes)
  • 值以UTC格式保存( it stores the number of milliseconds)
  • 时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

DATETIME

  • 8个字节储存(8 bytes storage)
  • 实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)
  • 与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)
      

使用选择

  • TIMESTAMP 记录经常变化的更新/创建/发布/日志时间等,并且是近来的时间,够用,可免时区处理;
  • DATETIME 记录生日、纪念事件、超出 TIMESTAMP 的时间,记得时区处理;

总结:MySQL中尽量使用DATETIME,而不要使用TIMESTAMP!



参考:

MySQL中的datetime与timestamp区别比较
MySQL中有关TIMESTAMP和DATETIME的总结
MySQL :: MySQL 5.7 Reference Manual :: 11.3.1 The DATE, DATETIME, and TIMESTAMP Types
MySQL :: MySQL 5.7 Reference Manual :: 11.3.5 Automatic Initialization and Updating for TIMESTAMP and DATETIME

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值