在 mysql 中创建事件时,我定义了如下时间表:
ON SCHEDULE EVERY 1 DAY STARTS '2014-08-08 00:00:00'
但是,当我运行以下查询时:
SELECT * FROM mysql.event;
我看到以下输出:
我想知道为什么开始
时间显示为'2014-08-08 07:00:00'
而不是'2014-08-08 00:00:00'
我在创建事件时定义的。请告诉我。
最佳答案
https://dev.mysql.com/doc/refman/5.5/en/events-metadata.html
为了在 mysql.event 表中表示事件信息,execute_at、开始时间和结束时间将转换为 UTC 并与事件时区一起存储。这使得事件执行能够按照定义继续进行,而不管服务器时区的任何后续更改或夏令时效果如何。最后执行的时间也存储在 UTC 中。
如果您从 mysql.event 选择信息,则刚才提到的时间将作为 UTC 值检索。这些时间也可以通过从 INFORMATION_SCHEMA.EVENTS 表或 SHOW EVENTS 中进行选择来获取,但它们以 ETZ 值的形式报告。从这些来源获得的其他时间表明事件创建或最后更改的时间;这些显示为 STZ 值。下表总结了事件时间的表示。
Value mysql.event INFORMATION_SCHEMA.EVENTS SHOW EVENTS
Execute at UTC ETZ ETZ
Starts UTC ETZ ETZ
Ends UTC ETZ ETZ
Last executed UTC ETZ n/a
Created STZ STZ n/a
Last altered STZ STZ n/a
关于mysql - SELECT * FROM mysql.event 显示不同的开始时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25193826/