MySQL的触发器:检查多少时间,直到时间戳列值过期

问题描述:

在我的表我有一列名为timstamp_col,我有触发BEFORE UPDATE在表上。MySQL的触发器:检查多少时间,直到时间戳列值过期

基本上我想是(在触发器)1小时,如果有1个多小时左延长timstamp_col直到timstamp_col值期满时,或通过30分钟如果存在较少然后在1小时左直到timstamp_col期满

IM不知道我怎么能检查还剩多少时间(以分钟为最好),直到timestampl值到期......我想是这样的

认罪忽略语法错误

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 ; 
+0

请提供此或http://sqlfiddle.com/这样做的(最小)表定义。触发器看起来是正确的,那么为什么不修复语法错误并尝试呢? – Myonara

你正在寻找UNIX_TIMESTAMP,它计算在几秒钟的时间

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