0

我需要跟踪表中的三个日期:

- created_at
- started_at
- finished_at

将来我计划让我的脚本适用于任何时区。据我所知,当我使用时间戳时,它们可以转换为任何时区,而 datetime 则不能。但另一方面,在一个表中包含多个时间戳似乎不是最佳解决方案,人们通常将 datetime 用于他们的表。

那么,如果我想使用时区,我应该使用什么?实际上我什至无法创建一个包含 3 个时间戳列的表(出现一些错误)

更新:

当我尝试创建具有四个时间戳的表时,出现语法错误。这是代码:

CREATE  TABLE IF NOT EXISTS `vs2`.`campaigns` (
  `starts_at` TIMESTAMP NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  `ends_at` TIMESTAMP NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  `updated_at` TIMESTAMP NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
...

我删除了不必要的字段。我确定原因是时间戳有问题,因为当我使用 datetime 时它运行良好。我输入默认值是因为我记得我遇到了一个问题,即所有时间戳都更新为当前日期或类似的东西。当我删除除 created_at 之外的所有时间戳的默认值时,我得到:

Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause 
4

0 回答 0