寻找MYSQL时区表的描述

时间:2015-11-09 20:18:45

标签: mysql timezone

过去一小时我一直在尝试不同的Google搜索,但我找不到任何有关MYSQL时区表的详细说明。我看过他们,但这还不足以让我把它们弄清楚(至少还有)。

我不介意阅读本手册,但有人能指出我描述这些表结构的那本书吗?

然后我想生成可以采用时区名称并生成时区缩写的SQL。然后是从缩写和国家代码到时区名称的反向。我找到了一些建议的SQL来完成其中的一些,但我对使用那些没有理解他们访问的表的那些犹豫不决。

/*
Input:  sourcedt : Input datetime string in context of source
            sourcetzn : timezone used for sourcedt
            basetzn:  Default timezone used by server
            displaytz:  Timezone for displaying date
Output:
        @displaydt :  Date time in context of source
        is_DST      : set 1 when output is in daylight savings time
        Abbreviation: Timezone abbreviation
        Offset:     GMT offset of displaytzn
*/
SET @sourcetzn = 'America/New_York';
SET @basetzn = 'America/Los_Angeles';
SET @displaytzn = 'America/Chicago';
SET @sourcedt = '2015-07-25 21:33:00';
SET @basedt = CONVERT_TZ(@sourcedt,@sourcetzn,@basetzn);
SET @displaydt = CONVERT_TZ(@basedt,@basetzn, @displaytzn);
SET @utime = unix_timestamp(@basedt);

SELECT
@displaydt,ztt.Abbreviation,ztt.Is_DST,ztt.`Offset`
FROM  mysql.`time_zone_name` tzn
JOIN    mysql.time_zone_transition_type ztt ON ztt.Time_zone_id=tzn.Time_zone_id
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 tzn.Name = @displaytzn
and  @utime >   tzt.Transition_time 
order by Transition_time desc
LIMIT 1;

0 个答案:

没有答案