9

嗨,我有日期时间变量的表。我想知道我是否可以以某种方式更改日期时间列以将 1O 分钟添加到存储日期。也许必须涉及一些触发器。

感谢帮助

4

2 回答 2

16

我喜欢这个INTERVAL expr unit符号。我觉得它更具可读性:

SELECT NOW(),
       NOW() + INTERVAL 10 MINUTE;


+--------------------------------+-------------------------------+
|             NOW()              |  NOW() + INTERVAL 10 MINUTE   |
+--------------------------------+-------------------------------+
| August, 12 2013 14:12:56+0000  | August, 12 2013 14:22:56+0000 |
+--------------------------------+-------------------------------+

如果要选择现有行并将结果添加 10 分钟:

SELECT the_date + INTERVAL 10 MINUTE FROM tbl;

如果要更改存储在表中的现有行,可以使用:

UPDATE tbl SET the_date = the_date + INTERVAL 10 MINUTE;

如果你想在插入时强制增加一个值 10 分钟,你需要一个触发器:

CREATE TRIGGER ins_future_date BEFORE INSERT ON tbl
FOR EACH ROW
  SET NEW.the_date = NEW.the_date + INTERVAL 10 MINUTE
于 2013-08-12T14:27:00.790 回答
2

按以下方式添加 10 分钟

       SELECT  ADDTIME(now(), '1000');
于 2013-08-12T13:41:57.303 回答