美文网首页
mysql中的datetime与timestamp比较

mysql中的datetime与timestamp比较

作者: 一个小箱子 | 来源:发表于2018-12-28 21:16 被阅读0次

参考文档:mysql-datetime

一、简单对比

对比项 表示的时间范围 时区处理 默认值和自动更细
datetime '1000-01-01 00:00:00'~'9999-12-31 23:59:59' - 高版本支持
timestamp '1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC 从当前时区转换为UTC存储,并从UTC转回当前时区以供检索 支持

二、总结

总结一下,区别有:

  1. 对时区的支持不同
  • timestamp类型,在存储时从当前时区转换为UTC存储,检索时从UTC转回当前时区以供检索。
  • datetime没有对时区的特殊处理。
  1. 表示的时间范围不同
  • timestamp表示时间范围是[1970-01-01,2038-01-19],如果给一个timestamp类型的字段设置一个超过2038-01-19的值,最终存储到数据库的值为0000-00-00 00:00:00。
  • datetime表示的时间范围更大:[1000-01-01,9999-99-99]。

三、设置默认值和自动更新策略的方式:

DEFAULT关键字设置默认值;

ON UPDATE 关键字设置更新策略;两者互相独立。

CREATE TABLE t1 (

ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP //在一些低版本的mysql上不支持

);

相关文章

网友评论

      本文标题:mysql中的datetime与timestamp比较

      本文链接:https://www.haomeiwen.com/subject/xozelqtx.html