【问题标题】:mysql trigger to calculate elapsed minutesmysql触发器计算经过的分钟数
【发布时间】:2016-06-23 04:15:05
【问题描述】:

我有一张 start_dateend_date 日期时间类型的表。 我需要一个触发器来计算两个日期之间经过的分钟数,并在更新 end_date 时更新同一表的 duration 字段上的结果。

由于某种原因,我尝试的所有方法都会出现语法错误。 我正在使用 phpMyAdmin sql 窗口来执行此操作。

请帮忙。

【问题讨论】:

  • 这个触发器会在 INSERT 或 UPDATE 时触发吗?

标签: mysql triggers


【解决方案1】:
CREATE TRIGGER 'my_trigger'
    BEFORE UPDATE ON `table`
    FOR EACH ROW
BEGIN

IF NEW.end_date IS NOT NULL THEN
    SET NEW.duration  = (UNIX_TIMESTAMP(NEW.end_date) - UNIX_TIMESTAMP(OLD.start_date)) / 60
END IF;

END //

【讨论】:

  • 感谢您的回答。我不知道我在做什么错,但我总是得到语法错误,不管是最简单的语句。我尝试了你的代码,也得到了错误... - #1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 8 行的“END IF”附近使用正确的语法
  • 如果您正在寻找答案,请不要忘记将其设置为答案。希望你管理好你的触发器。祝你好运!
猜你喜欢
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多