为什么MySQL5.7甚至调度器的开始日期时间与创建/更改事件的开始时间不匹配?

iaqfqrcu  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(256)

在我创建事件之后。。。

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 ?

3vpjnl9f

3vpjnl9f1#

https://dev.mysql.com/doc/refman/5.7/en/create-event.html 说:
on schedule子句中的时间使用当前会话时区值进行解释。这将成为事件时区;也就是说,用于事件调度并且在事件执行时在事件内有效的时区。这些时间将转换为utc,并与事件时区一起存储在mysql.event表中。这使事件执行能够按定义继续进行,而不管服务器时区或夏令时效果的任何后续更改。
(我的重点)
我推断你在美国中部时区。您在本地时区为utc-0600时创建了事件,然后将值存储在 mysql.event 比utc提前了六个小时。

相关问题