我应该在mysql中使用timestamp字段用于时区还是其他?

时间:2010-01-01 02:04:25

标签: php mysql time

我以前的网站在MySQL中使用DATETIME文件来存储所有日期/时间。在我的新网站上我添加时区功能,所以我想将所有提交的时间存储在UTC时间戳,我现在有点困惑虽然在阅读了SO上的另一篇文章后,我读到每次更新记录时更新时间戳,如果是这种情况,那么我应该将我的UTC时间戳存储到文本字段中还是什么?

我打算将UTC值存储在下面,我错了,请帮忙

$now = gmdate('U', time());

2 个答案:

答案 0 :(得分:1)

ADD COLUMN name TIMESTAMP DEFAULT 0是你的朋友。如果没有DEFAULT some_constant_value,MySQL会在每次更新行时自动更新列(参考MySQL 5.0 Reference Manual :: ... 10.3.1.1 TIMESTAMP Properties

答案 1 :(得分:1)

  

我读到时间戳已更新   每次更新记录

关于时间戳的一些信息:

  • 对于表格中的一个TIMESTAMP列, 您可以分配当前时间戳 作为默认值和 自动更新值。有可能 将当前时间戳设为 初始化的默认值 列,用于自动更新值,或 都。这是不可能的 当前时间戳是默认值 一列的值和 另一列的自动更新值。

  • a中的任何一个TIMESTAMP列 table可以用作那个 初始化为当前日期和 时间,或自动更新。这个 不必是第一个TIMESTAMP 列。

  • 如果指定了DEFAULT值 a中的第一个TIMESTAMP列 表,它不被忽略。默认 可以是CURRENT_TIMESTAMP或者 不变的日期和时间值。

  • 指定自动默认值或 更新其他TIMESTAMP列 比第一个,你必须压制 自动初始化和 更新第一个行为 明确TIMESTAMP列 为其分配一个常量DEFAULT值 (例如,DEFAULT 0DEFAULT '2003-01-01 00:00:00')。然后,为了 其他TIMESTAMP列,规则是 与第一个TIMESTAMP相同 列,但如果省略两者 DEFAULTON UPDATE条款中的{ 没有自动初始化或 更新发生。