在我的表中我有一个名为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 ;
答案 0 :(得分:0)
您正在寻找UNIX_TIMESTAMP,它以秒为单位计算时间
IF UNIX_TIMESTAMP(OLD.timstamp_col) - UNIX_TIMESTAMP() < 3600 THEN
SET NEW.timestamp_col = NOW() + INTERVAL 30 MINUTE;
END IF ;