【问题标题】:MySQL now() is 1 hour behindMySQL now() 落后 1 小时
【发布时间】:2015-11-15 23:41:37
【问题描述】:

我正在尝试从 TODAY THE CURRENT 获得所有选票,并且我几乎通过以下 mysql 查询实现了这一点,但是有一个问题。

这段代码让我从今天开始投票:

SELECT COUNT(*) FROM votes WHERE `when` > CURRENT_DATE

但是当使用now() 插入 mysql 时,now() 比我的时区(欧洲/伦敦)晚 1 小时,我该如何解决?

谢谢。

【问题讨论】:

标签: mysql


【解决方案1】:

您需要populate your timezone tables。如果您使用的是 linux,则可以通过运行以下命令来实现:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

您可能需要知道您的根密码。然后,您可以以 root 身份运行以下查询:

SET GLOBAL time_zone = 'Europe/London';

【讨论】:

  • 这就是您需要填充时区表的原因。你做了那一步吗?
  • 对我不起作用,将time_zone 设置为“欧洲/柏林”后,NOW() 仍然落后 1 小时。编辑:没关系,运行 MySQL 的 docker 容器中的时区也不正确。
【解决方案2】:
mysql> SET GLOBAL time_zone = 'America/New_York';

https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2021-06-03
    • 2011-07-15
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多