SELECT * FROM mysql.event显示不同的开始时间

时间:2014-08-07 23:23:45

标签: mysql mysql-workbench mysql-event

在mysql中创建事件时,我的日程安排如下:

 ON SCHEDULE EVERY 1 DAY STARTS '2014-08-08 00:00:00'

但是,当我运行以下查询时:

SELECT * FROM mysql.event;

我看到了以下输出:

enter image description here

我想知道为什么starts时间显示为'2014-08-08 07:00:00'而不是我在创建活动时定义的'2014-08-08 00:00:00'。请告诉我。

1 个答案:

答案 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