【问题标题】:"Casting" MySQL TIMESTAMP values to a DATETIME column: any gotchas?将 MySQL TIMESTAMP 值“投射”到 DATETIME 列:有什么问题吗?
【发布时间】:2017-07-19 15:57:20
【问题描述】:

我有一个系统,代码会不时在给定表中插入一个新值。假设该表有这两列:

  1. ID:int(11)
  2. 日期:时间戳

并且“日期”列被定义为将 CURRENT_TIMESTAMP 作为默认值。因此,代码有时会执行以下操作:

INSERT INTO tabla (ID) VALUES ('$bla');

我们得到新值和插入时的 TIMESTAMP。

现在,我想获取该 TIMESTAMP 值并将其插入到另一个表的 DATETIME 列中(这是一个我正在破解的遗留系统,我不能/宁愿不触及另一个表的定义)。

我的问题是:我可以按原样获取该 TIMESTAMP 值并将其插入到另一个表的 DATETIME 列中而没有任何问题吗?根据我的阅读,两种类型的主要区别在于时区处理,但就我而言:

  • 两个表都在同一个数据库中。
  • 数据库只有一个副本(这不像我们要从不同国家复制数据库)。
  • 插入的日期均来自同一个国家/地区。

我正在使用 MySQL 5.5 和 PHP。

【问题讨论】:

    标签: php mysql datetime timestamp


    【解决方案1】:

    我的问题是:我可以按原样获取该 TIMESTAMP 值并将其插入到另一个表的 DATETIME 列中而没有任何问题吗?

    是的。

    您已经正确地观察到DATETIME 值将参考当前选择的时区进行记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-25
      • 2015-04-20
      • 2016-10-30
      • 2021-03-18
      • 1970-01-01
      • 2011-02-01
      • 2017-07-08
      • 1970-01-01
      相关资源
      最近更新 更多