【问题标题】:MySQL TIMESTAMP value greater than '2038-01-19 03:14:07'MySQL TIMESTAMP 值大于 '2038-01-19 03:14:07'
【发布时间】:2010-08-17 13:32:53
【问题描述】:

我想知道在 2038 年 1 月 19 日 03:14:07 之后,使用 TIMESTAMP 作为数据类型的表字段会发生什么?

我一直更喜欢DATETIME,但您显然不能将CURRENT_TIMESTAMP 指定为该类型的默认值。我的意思是,你想想,28 年并不长(无论如何我认为)......那么所有这些 TIMESTAMP 字段会发生什么?

【问题讨论】:

  • 我猜到那时我们将拥有支持更长范围的 MySQL 2038。希望没有人会继续使用 MySQL 5

标签: mysql timestamp


【解决方案1】:

您可能无法将CURRENT_TIMESTAMP 分配给DATETIME 列,但您可以将NOW() 分配给它。

至于 y2k+38 问题,我敢打赌,将会有更新版本的 MySQL 在它成为真正问题之前很久就解决这个问题。

【讨论】:

  • 不幸的是,要设置 NOW(),我需要创建一个触发器。虽然这是一个可接受的解决方案,但触发器不会显示在 PhpMyAdmin 导出中(但使用 mysqldump):/
  • 你不需要设置触发器来添加NOW()..它可以在你的插入/更新查询中添加......也许我误解了一些东西。
  • 我了解默认值以及如何设置 NOW()。我对关于 TIMESTAMP 与 DATETIME 的一般意见更加好奇(我个人最喜欢的是 DATETIME)。但我将结束这个问题,最后说,我同意 y2k+38 到那个时候用更新的版本解决(希望如此!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-28
  • 2021-06-23
  • 2018-06-08
  • 1970-01-01
  • 2019-09-22
  • 2011-06-05
  • 2017-06-11
相关资源
最近更新 更多