返回首页

gbase数据、南大通用产品文档:GBase8a夏令时

更新日期:2024年09月11日

概述
夏令时是指在夏天太阳升起的比较早时,
将时钟拨快一小时,
以提高日光的使用。
支持时区是支持夏令时的前提,不同的时区对夏令时的支持不同。只有在使用夏
令时的时区内,夏令时才能起作用。
说明

system_time_zone:显示操作系统的时区。

time_zone:当前session 中gbase 使用的时区,session 级变量,可在配置
文件中使用default-time-zone 进行设置,或使用set time_zone 进行修改。
time_zone 的值有三种形式:

System:
time_zone 的值同system_time_zone 的值相同,
如果配置文件里面
没有设置,该值为默认值。

UTC:表示的偏移,范围为[-12:59, 13:00], 例如‘+8:00’ 表示的是东八
区。

time_zone_name:
时区名,
从time_zone_name 中能查出的时区的名字,例
如Asia/Shanghai 表示上海所在的时区。
示例
示例1:使用不同的时区。
gbase> set time_zone='+8:00';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
774
gbase> show variables like '%time_zone%';
+------------------+--------+
| Variable_name
| Value
|
+------------------+--------+
| system_time_zone | CST
|
| time_zone
| +08:00 |
+------------------+--------+
2 rows in set (Elapsed: 00:00:00.00)
gbase> set time_zone='SYSTEM';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> show variables like '%time_zone%';
+------------------+--------+
| Variable_name
| Value
|
+------------------+--------+
| system_time_zone | CST
|
| time_zone
| SYSTEM |
+------------------+--------+
2 rows in set (Elapsed: 00:00:00.00)
gbase> set time_zone='US/Central';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> show variables like '%time_zone%';
+------------------+------------+
| Variable_name
| Value
|
+------------------+------------+
| system_time_zone | CST
|
| time_zone
| US/Central |
+------------------+------------+
2 rows in set (Elapsed: 00:00:00.00)
示例2:修改系统时区进行比较。
cp
/usr/share/zoneinfo/US/Pacific
/etc/localtime
gbase> set time_zone='SYSTEM';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> show variables like '%zone%';
+------------------+--------+
| Variable_name
| Value
|
+------------------+--------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
775
| system_time_zone | CST
|
| time_zone
| SYSTEM |
+------------------+--------+
2 rows in set (Elapsed: 00:00:00.00)
gbase> \! date
2021 年06 月07 日星期一14:02:59 CST
gbase> SELECT now() FROM dual;
+---------------------+
| now()
|
+---------------------+
| 2021-06-07 14:03:01 |
+---------------------+
1 row in set (Elapsed: 00:00:00.04)
gbase> \! date -u +%s
1585719249
gbase> SELECT from_unixtime(1585719249) FROM dual;
+---------------------------+
| from_unixtime(1585719249) |
+---------------------------+
| 2020-04-01 13:34:09
|
+---------------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> \! date
2021年06月07日星期一14:02:59 CST
示例3:在夏令时内,gbase 内时间与系统时间一致。
//修改系统时区
cp
/usr/share/zoneinfo/US/Pacific
/etc/localtime
//修改系统时间为夏令时时间内:
# date -s '2020-3-11 5:00:00'
Wed Mar 11 05:00:00 PST 2020
# hwclock -w
# date
'+%Y-%m-%d %H:%M:%S'
2020-03-11 05:04:22
gbase> set time_zone='SYSTEM';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> show variables like '%zone%';
+------------------+--------+
| Variable_name
| Value
|
+------------------+--------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
776
| system_time_zone | CST
|
| time_zone
| SYSTEM |
+------------------+--------+
2 rows in set (Elapsed: 00:00:00.00)
gbase> \! date '+%Y-%m-%d %H:%M:%S'
2020-03-11 05:06:06
gbase> SELECT now() FROM dual;
+---------------------+
| now()
|
+---------------------+
| 2020-03-11 05:06:10 |
+---------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> \! date -u +%s
1583874423
gbase> SELECT from_unixtime(1583874423) FROM dual;
+---------------------------+
| from_unixtime(1583874423) |
+---------------------------+
| 2020-03-11 05:07:03
|
+---------------------------+
1 row in set (Elapsed: 00:00:00.00)

onconfig.std 值
USEOSTIME 0

0 = 关
1 = 开
生效
初始化期间

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 168 -

参考
l GBase 8s 性能指南
l 使用 CURRENT 函数来返回 datetime 值,在 GBase 8s SQL 指南:语法 中
用法
设置 USEOSTIME 为 1 指定当数据库服务器从操作系统为 SQL 语句获取当前时间时,
数据
库服务器要使用亚秒精度。下列示例显示 datetime 值中的亚秒:
2001-09-29 12:50:04.612
如果不需要亚秒精度,则数据库服务器每秒从操作系统检索当前时间一次,使得客户端应
用的时间精度为一秒。如果设置 USEOSTIME 为 0,则当前函数为该年向分数域返回零
(.000)。
当数据库服务器的主机计算机有亚秒精度时钟时,
其 SQL 语句依赖于亚秒精确度的应用应
设置 USEOSTIME 为 1。
与关闭 USEOSTIME 运行的系统相比,USEOSTIME 设置为非零的系统注意到性能下降达 4%
至 5%。
从应用程序到 GBase 8s 内嵌语言库函数,这个设置不影响任何关于时间的调用。

变量作为语法图表和示例中标识符和名称的占位符。
根据上下文,可用任意名称、标识符或文字替换变量。变量也用来代表附加语法图表中扩
展的复杂语法元素。当变量出现在语法图表、示例或文本中时,它以斜体小写字母显示。
下列语法图使用变量来说明简单 SELECT 语句的一般格式。

当编写此格式的 SELECT 语句时,请使用特定的列和表名称来替换 column_name 和
table_name 变量。





2 数据库服务器