mysql触发器:检查时间戳列值到期之前剩余的时间

时间:2017-08-07 23:46:24

标签: mysql triggers

在我的表中我有一个名为timstamp_col的列,我在桌面上触发了BEFORE UPDATE。

基本上我想要的是(在触发器中)如果剩余时间超过1小时直到timstamp_col值到期,则将timstamp_col延长1小时,或者如果距离小于1小时则延长30分钟timstamp_col到期

我不知道怎么能检查剩下多少时间(最好是几分钟),直到时间戳值到期...我想要这样的东西

请求忽略语法错误

DELIMITER $$ 
CREATE TRIGGER  update_timestamp BEFORE UPDATE  
    ON  table  
      FOR EACH ROW BEGIN  

IF OLD.timstamp_col - NOW() > 60 THEN 
 SET NEW.timestamp_col = NOW() + INTERVAL 1 HOUR 
END IF ;

IF OLD.timstamp_col - NOW() < 60 THEN 
 SET NEW.timestamp_col = NOW() + INTERVAL 30 MINUTE;
END IF ; 



     END$$ 
DELIMITER ;

1 个答案:

答案 0 :(得分:0)

您正在寻找UNIX_TIMESTAMP,它以秒为单位计算时间

IF UNIX_TIMESTAMP(OLD.timstamp_col) - UNIX_TIMESTAMP() < 3600 THEN 
 SET NEW.timestamp_col = NOW() + INTERVAL 30 MINUTE;
END IF ;