【问题标题】:SELECT * FROM mysql.event showing different start timeSELECT * FROM mysql.event 显示不同的开始时间
【发布时间】:2014-10-01 08:42: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'。请告诉我。

【问题讨论】:

  • 也许 MySQL Workbench 会将时间本地化到您的本地时区?
  • 如何检查和禁用它?
  • 您可以使用SELECT @@global.time_zone, @@session.time_zone;检查当前值
  • @double_j 在运行SELECT @@global.time_zone, @@session.time_zone; 后,两者都显示SYSTEM

标签: mysql mysql-workbench mysql-event


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2011-04-23
    • 2018-02-12
    相关资源
    最近更新 更多