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

标签 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

我想知道为什么开始时间显示为'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/

相关文章:

mysql - 插入多行时如何使用 "ON DUPLICATE KEY UPDATE"增加 MySql 中的字段?

mysql - 正向工程师未从 MySQL Workbench 中的模型创建表

mysql - "Packet for query is too large"错误。在哪里更改 max_allowed_pa​​cket 变量?

php - 一旦完成任务就删除Mysql事件

mysql - 如何根据当前月份和年份创建mysql表名

mysql - MySQL 是否调用队列存储过程?

java - HTTP 状态 500 - javax.el.PropertyNotFoundException : Property not found on type

python - 优化数据上传(MySQL、Python)

mysql - 如何解决 MySQL Workbench 上的这些行错误?

mysql - 无法使用 @rodrigogs/mysql-events Zongji 事件监听器更改 Node 客户端的 serverId