【问题标题】:How to add 1 hour to currrent_timestamp in mysql which is the default value?如何在 mysql 中的 current_timestamp 中添加 1 小时,这是默认值?
【发布时间】:2016-06-27 13:45:07
【问题描述】:

我有一个带有时间戳字段的数据库,默认情况下采用当前时间戳,但我对时间有问题,例如如果我在 9:00 插入行,它将采用 8 作为时间戳。

所以我的问题是如何使该表中的 current_timestamp 默认增加一小时?我知道你可以用 php 来做,但我更喜欢纯 mysql 解决方案。

我的服务器时区有问题,但我不想更改它,因为我担心这可能会影响服务器上的其他数据库,而我只想更改一个数据库中的时间戳。

【问题讨论】:

标签: mysql database timestamp


【解决方案1】:

你不能做CURRENT_TIMESTAMP + INTERVAL 1 HOUR,但你可以定义一个触发器来代替:

CREATE TRIGGER tr_dt_table BEFORE INSERT ON your_table FOR EACH ROW BEGIN
  SET NEW.datetime_field = NOW() + INTERVAL 1 HOUR;
END

并删除该字段的所有默认值(即默认设置为NULL)以避免矛盾。

【讨论】:

  • 我想补充一点,如果它是一个时间戳字段,它必须使用“fieldname timestamp NULL DEFAULT NULL”创建
  • 另外,我测试了触发器,它在没有“BEGIN”的情况下工作
【解决方案2】:
insert into table_name values (DATE_ADD(now() , INTERVAL 1 HOUR));

【讨论】:

  • 我想在我的时间戳字段中默认添加 1 小时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 2022-11-05
  • 2023-01-06
相关资源
最近更新 更多