如何添加自定义时区到MySQL


How to Add Custom Timezones to MySQL

我是SQL新手,因此有一些问题。目前,我已经在MySQL中加载了时区,并使用以下命令来显示TZ名称。

SELECT * FROM mysql.time_zone_name;

我想添加一个自定义时区重新加载整个表。例如,US/Hawaii是我需要的TZ,但说我想添加TZ,如US/Hawaii-Aleutian,但指向与US/HAwaii相同的TZ或我想要的任何其他时区。这可能吗?

我想这样做,因为我想使用这个新的TZ与以下内容:

SELECT convert_tz(now(), "Canada/Mountain", "US/Hawaii-Aleutian")

您可以通过在mysql.time_zone_name表中插入一行来添加时区名称别名。

例如,

 INSERT INTO mysql.time_zone_name 
             (Name, Time_zone_id)
 SELECT 'US/Whatever' Name, Time_zone_id
   FROM  mysql.time_zone_name
  WHERE  Name = 'US/Hawaii' 

但是:这是一个严重的坏主意。当不同的司法管辖区更改其时区和夏令时政策时,通过Linux发行版更新定期更新zoneinfo表。当这些更新应用到服务器时,对MySQL时区表的更改将被擦除。只要让你的用户使用US/Hawaii, US/Aleutian,或者Pacific/Honolulu