在mysql中创建事件时,我的日程安排如下:
ON SCHEDULE EVERY 1 DAY STARTS '2014-08-08 00:00:00'
但是,当我运行以下查询时:
SELECT * FROM mysql.event;
我看到了以下输出:
我想知道为什么starts
时间显示为'2014-08-08 07:00:00'
而不是我在创建活动时定义的'2014-08-08 00:00:00'
。请告诉我。
答案 0 :(得分:0)
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