在 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'
我在创建事件时定义的时间。请告诉我。
在 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'
我在创建事件时定义的时间。请告诉我。
https://dev.mysql.com/doc/refman/5.5/en/events-metadata.html
为了在 mysql.event 表中表示事件信息,execute_at、开始和结束时间被转换为 UTC 并与事件时区一起存储。这使得事件执行能够按定义进行,而不管服务器时区的任何后续更改或夏令时效果如何。last_executed 时间也以 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