【问题标题】:MySQL add some hours when set default column datetime [duplicate]MySQL在设置默认列日期时间时添加一些小时[重复]
【发布时间】:2018-04-05 03:51:44
【问题描述】:

我想在将表 datetime 更改为默认 current_timestamp 时添加一些小时

我在这里尝试了 sql 查询:

 ALTER TABLE [table_name] MODIFY COLUMN created_date TIMESTAMP NOT NULL DEFAULT SELECT DATE_ADD(NOW(), INTERVAL 7 HOUR);

 ALTER TABLE [table_name] MODIFY COLUMN created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP + INTERVAL 7 HOUR;

 ALTER TABLE [table_name] MODIFY COLUMN created_date TIMESTAMP NOT NULL DEFAULT NOW() + INTERVAL 7 HOUR;

但它们都不起作用,如果你知道如何解决这个问题,请分享给我。

【问题讨论】:

  • 为什么不在插入前创建触发器
  • 好主意,如果可能的话,我想知道如何通过alter query来完成。
  • 我不知道这一点,但您不能在 MySQL 中将小时数添加到默认值。你必须使用触发器,q.v。重复的链接。
  • hmm..,因此无法在 MySQL 中将小时数添加到默认值...这意味着我的案例只能通过触发器应用..好的,谢谢@TimBiegeleisen

标签: mysql timestamp alter-table


【解决方案1】:

下面的触发器试试:

DELIMITER $$

CREATE TRIGGER [trigger_name]
BEFORE INSERT
ON [table_name] FOR EACH ROW

BEGIN

SET NEW.created_date = CURRENT_TIMESTAMP + INTERVAL 7 HOUR;

END$$ 
DELIMITER ;

然后尝试将数据插入到您的表中。

【讨论】:

  • 嗨@Rehan,感谢您的触发查询:)
  • 成功了吗?如果是,请接受答案。
  • 好的,但可能需要进行一些编辑,因为无法通过默认值添加小时数..,您的答案适合我的情况。谢谢
猜你喜欢
  • 2010-09-15
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多