在MYSQL中使用多个时间戳\使用日期区域

时间:2013-06-10 11:08:22

标签: mysql timezone timestamp

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

- created_at
- started_at
- finished_at

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

所以,如果我想使用时区我应该使用什么?实际上我甚至无法创建一个包含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 

0 个答案:

没有答案