【发布时间】:2018-04-12 16:54:33
【问题描述】:
我们将时区设置为 IST(印度标准时间)以 -
mysql> show global variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | IST |
| time_zone | SYSTEM |
+------------------+--------+
SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | SYSTEM |
+--------------------+---------------------+
1 row in set (0.00 sec)
mysql> select NOW();
+---------------------+
| NOW() |
+---------------------+
| 2017-10-31 17:05:26 |
+---------------------+
上面显示的时间与服务器时间相同,也是 IST 中的时间。
我们想将其更改为 UTC。与时区为 UTC 的服务器相比,该服务器上唯一不同的值似乎是设置为 IST 的 system_time_zone 变量,如上所示。
不确定要更改哪个变量/配置。
我们尝试更改 my.ini 中的 default-time-zone,但它更改了 time_zone 变量而不是 system_time_zone。
据我所知,以下还将尝试更新time_zone -
设置全球 time_zone="+00:00";
所以,不确定什么会更新system_time_zone。
已检查https://stackoverflow.com/a/5359622/351903 不确定 system_time_zone 和 time_zone 之间到底有什么区别。
另外,The Mysql documentation says -
--timezone 或 TZ 的允许值取决于系统。
无法在 Windows 和 Cent OS 服务器上找到合适的 IST 值。 From this article 似乎需要进行一些调查。有人可以帮忙吗?任何指针。
背景
我想要在服务器上执行select NOW(); 时看到 5:30 小时的时差。目前它显示的时间与应用程序服务器时间(也是 IST)相同。我们正在尝试添加这种差异来重现测试场景。
更新
在我的 Windows 设置中获得以下信息 -
mysql> SET time_zone = 'Asia/Kolkata';
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
mysql> SET time_zone = "Asia/Kolkata";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
mysql> SET time_zone = "UTC";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'UTC'
【问题讨论】:
标签: mysql windows timezone zoneinfo