首页 > 专栏

夏令时功能测试

更新时间:2023-06-11 08:59:05 阅读: 评论:0

1 夏令时具体需求
1.1 功能需求
1.1.1 夏令时
夏令时也称夏日节约时间,是指在夏天太阳升起的比较早时,将时钟拨快一小时,以提高日光的使用。支持时区是支持夏令时的前提,不同的时区对夏令时的支持不同。只有在使用夏令时的时区内,夏令时才能起作用
以美国为例:
从2007年起,每年3月的第二个星期天的凌晨2点开始,11月的第一个星期天的凌晨2点为止,为夏令时。其他的时间为冬令时或者当地的标准时间。
1.1.2 参数说明
system_time_zone参数: 显示操作系统的时区
time_zone: 当前ssion中gba使用的时区,ssion级变量,可在配置文件中使用default-time-zone进行设置,或使用t time_zone进行修改。
time_zone的值有三种形式:
a) system:  time_zone的值同system_time_zone的值相同,如果配置文件里面没有设置,该值为默认值。
b) UTC表示的偏移:范围为 [-12:59, 13:00], 例如+8:00 表示的是东八区。
c) 时区名:从time_zone_name中能查出的时区的名字, 例如Asia/Shanghai 表示上海所在的时区。
1.1.3 系统表
时区用到的系统表如下:
time_zone
time_zone_name
time_zone_transition 
time_zone_transition_type
支持润秒的时候需要用到下面的表:
time_zone_leap_cond
8.6.2Build33版本集群安装完后,已经加载好时区系统表。
升级的时候,需要手动加载gba_time_zone.sql到时区系统表。在安装包的gcinstall目录下的gba_data_timezone.sql文件。
执行gccli uroot Dgba < gba_data_timezone.sql,和各gnode节点执行gncli u root Dgba<file_name;
停止集群;然后重启集群使时区生效。
1.1.4 使用不同的时区
gba> t time_zone='+8:00';
Query OK, 0 rows affected (Elapd: 00:00:00.00)
gba> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in t (Elapd: 00:00:00.00)
gba> t time_zone='SYSTEM';
Query OK, 0 rows affected (Elapd: 00:00:00.00)
gba> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in t (Elapd: 00:00:00.00)
gba> t time_zone='US/Central';     
Query OK, 0 rows affected (Elapd: 00:00:00.00)
如果数据库不能正常支持夏令时,这一步骤会报错“ERROR 1298 (HY000): Unknown or incorrect time zone: 'US/Central'”
gba> show variables like '%time_zone%';
+------------------+------------+
| Variable_name    | Value      |
+------------------+------------+
| system_time_zone | CST        |
| time_zone        | US/Central |
+------------------+------------+
2 rows in t (Elapd: 00:00:00.00)
1.1.5 使用夏令时
a) 在夏令时内,系统时间跟gba内时间一致。
修改系统时区
cp  /usr/share/zoneinfo/US/Pacific  /etc/localtime
修改系统时间为夏令时时间内:
[root@localhost ~]# date -s '2017-3-11 5:00:00'
Sat Mar 11 05:00:00 PST 2017
[root@localhost ~]# hwclock -w
[root@localhost ~]# date  '+%Y-%m-%d %H:%M:%S'
2017-03-11 05:04:22
gba> t time_zone='SYSTEM';
Query OK, 0 rows affected (Elapd: 00:00:00.00)
gba> show variables like '%zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | PST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in t (Elapd: 00:00:00.00)
gba> \! date '+%Y-%m-%d %H:%M:%S'
2017-03-11 05:06:06
gba> lect now();
+---------------------+
| now()              |
+---------------------+
| 2017-03-11 05:06:10 |
+---------------------+
1 row in t (Elapd: 00:00:00.00)
\! date 的结果是操作系统时间,Select now()的结果是数据库时间,数据库时间与操作系统时间一致。系统时区支持夏令时,数据库即支持夏令时。
b) convert_tz函数,在支持夏令时的时区内转换。
gba> SELECT CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','US/Central');
+------------------------------------------------------------+
| CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','US/Central') |
+------------------------------------------------------------+
| 2007-03-11 01:00:00                                        |
+------------------------------------------------------------+
1 row in t (Elapd: 00:00:00.02)
gba> SELECT CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','US/Central');
+------------------------------------------------------------+
| CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','US/Central') |
+------------------------------------------------------------+
| 2007-03-11 01:00:00                                        |
+------------------------------------------------------------+
如果数据库不能正常支持夏令时,以上结果集为NULL。

本文发布于:2023-06-11 08:59:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1686445145196818.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:夏令时功能测试.doc

本文 PDF 下载地址:夏令时功能测试.pdf

标签:时间   时区   支持   系统   数据库   集群   使用
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|