在我创建事件之后。。。
DELIMITER $$
CREATE DEFINER=`abc`@`localhost` EVENT `testEventYearly` ON SCHEDULE EVERY 1 YEAR STARTS '2018-01-01 00:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN
CALL `spTestEventYearly` ();
END$$
……我看着镜子 mysql.event
请看一张table starts
的价值 2018-01-01 06:00:00
. 我检查了服务器上的日期/时间,一切正常。为什么会有时间上的差异?它会在 06:00
或者 00:00
?
1条答案
按热度按时间3vpjnl9f1#
https://dev.mysql.com/doc/refman/5.7/en/create-event.html 说:
on schedule子句中的时间使用当前会话时区值进行解释。这将成为事件时区;也就是说,用于事件调度并且在事件执行时在事件内有效的时区。这些时间将转换为utc,并与事件时区一起存储在mysql.event表中。这使事件执行能够按定义继续进行,而不管服务器时区或夏令时效果的任何后续更改。
(我的重点)
我推断你在美国中部时区。您在本地时区为utc-0600时创建了事件,然后将值存储在
mysql.event
比utc提前了六个小时。