我想显示给定日期的适当时区缩写,而不仅仅是Olsen国家/城市名称(例如,显示'PST'而不是'US / Pacific')。
目前尚不清楚如何查询用于给定日期的正确缩写。 time_zone_name表中类似记录之间的唯一区别是time_zone_transition中的'transition_type_id列。
以下是示例查询。我想我需要插入一个真实的日期,以便知道transition_type_id与日期匹配,然后能够根据该id进行过滤以获得缩写。
SELECT
tz.name
,tpe.abbreviation
,tpe.offset/3600
,tpe.*
FROM mysql.time_zone_transition_type tpe, mysql.time_zone_name tz
WHERE tz.time_zone_id = tpe.time_zone_id
AND tz.name = 'US/Pacific' ;
答案 0 :(得分:0)
我认为这是您正在寻找的查询。最终,您需要将其与应用程序表连接,并选择适当的time_zone_id以及替换此查询中的硬编码日期时间。
SELECT * FROM mysql.time_zone_transition_type ztt
INNER JOIN mysql.time_zone_transition tzt
ON tzt.Time_zone_id = ztt.Time_zone_id
AND tzt.Transition_type_id = ztt.Transition_type_id
where tzt.Time_Zone_id = 163
and UNIX_TIMESTAMP('2014-01-23 16:00') >= Transition_time
order by Transition_time desc
LIMIT 1;