我是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
。