如何手动调整时间戳到上一年的价值?

时间:2014-09-15 18:46:30

标签: php mysql

我正在使用时间戳存储上传的pubdate。我想添加一个过滤器,按照上传年份对记录进行排序,因此需要将几个记录更改为前几年用于测试目的。当我尝试通过单击日历并选择日期来手动调整mysql中的日期时,它会标记错误。

timestamp的值设置为CURRENT_TIMESTAMP。 时间戳字段中的函数值为:

NOW
CURDATE
FROM_DAYS
FROM_UNIXTIME
PERIOD_ADD
PERIOD_DIFF
TO_DAYS

我在网上找不到与此有关的任何内容。我不需要执行手动调整日期所需的计算。

1 个答案:

答案 0 :(得分:0)

如果问题是您在此列上使用了ON UPDATE CURRENT_TIMESTAMP,则可以通过重新定义列来删除此设置:

ALTER TABLE yourTable MODIFY COLUMN pubdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

您也可以查看文档:

With neither DEFAULT CURRENT_TIMESTAMP nor ON UPDATE CURRENT_TIMESTAMP,
it is the same as specifying both DEFAULT CURRENT_TIMESTAMP and
ON UPDATE CURRENT_TIMESTAMP.

我猜你的表是在没有定义这两个中的任何一个的情况下创建的,导致你无法自动更新此列的行为。 会发生什么:

  1. 您选择一行并覆盖时间戳(例如将日期设置为2013)
  2. MySQL检测到该行已更新
  3. 隐式指定ON UPDATE CURRENT TIMESTAMP MySQL使用当前时间戳更新时间戳字段
  4. 您对时间戳的更改将被覆盖/丢失