【发布时间】:2012-07-05 02:39:21
【问题描述】:
根据这个question关于如何在mysql中设置time_zone和这个时区list,我认为这应该可以工作:
SET time_zone = 'Europe/Madrid';
但这是 sqlBuddy 记录的内容:
报告了以下错误:未知或不正确的时区: '欧洲/马德里'
【问题讨论】:
根据这个question关于如何在mysql中设置time_zone和这个时区list,我认为这应该可以工作:
SET time_zone = 'Europe/Madrid';
但这是 sqlBuddy 记录的内容:
报告了以下错误:未知或不正确的时区: '欧洲/马德里'
【问题讨论】:
确保已填充时区信息表。来自mysql:
该值可以指定为命名时区,例如“欧洲/赫尔辛基”、“美国/东部”或“MET”。只有在 mysql 数据库中的时区信息表已经创建并填充后,才能使用命名时区。
虽然我个人更喜欢以 UTC 格式存储所有日期。我发现它使推理变得更加简单,尤其是在引入夏令时时。
【讨论】:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
NOW() 返回的值以当前时区表示。现在您有一些填充的时区,出于调试目的,请尝试将时区更改为 'US/Eastern' 并调用 NOW() 然后更改回 'Europe/Madrid' 并调用 NOW() 然后确保存在差异.
SUPER 权限执行以下操作:SET GLOBAL time_zone = 'Europe/Madrid'; 然后运行SELECT @@global.time_zone, @@session.time_zone;,然后使用'US/Eastern' 时区重复。结果如何?
如果您不想制作自己的时区设置表,另一种解决方案。
如果您有自己的服务器,请保持 MySQL 不变。默认为时区SYSTEM。
Ubuntu用户可以使用
dpkg-reconfigure tzdata
对于更保守的操作系统(Centos、RedHat、Fedora)使用
tzconfig
用于更改系统时区的命令。将弹出一个 CLI 应用程序,您可以在其中选择区域和位置。它不仅是一只石头的两只鸟,而且它还可以自动适应日光变化,而无需在 MySQL 时区表中指定时间和内容。
不要忘记重新启动您的 MySQL 服务器以使更改生效。
【讨论】: