返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

EXTRACT

EXTRACT(field FROM source)
extract 函数从日期或时间的数值里抽取子域,比如年、小时等。source 必须是一个
timestamp、time 或interval 类型的值表达式(类型为date 的表达式转换为timestamp,因此
也可以用)
。field 是一个标识符或者字符串,它指定从源数据中抽取的域。extract 函数返回
类型为double precision 的数值。field 的取值范围如下所示。

century
世纪。第一个世纪从0001-01-01 00:00:00 AD 开始。这个定义适用于所有使用阳历的国
家。没有0 世纪,直接从公元前1 世纪到公元1 世纪。
示例:
gbase=# SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');
date_part
-----------
20
(1 row)

day

如果source 为timestamp,表示月份里的日期(1-31)


GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
201
gbase=# SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
date_part
-----------
16
(1 row)

如果source 为interval,表示天数。
gbase=# SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
date_part
-----------
40
(1 row)

decade
年份除以10。
gbase=# SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');
date_part
-----------
200
(1 row)

dow
每周的星期几,星期天(0)到星期六(6)

gbase=# SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
date_part
-----------
5
(1 row)

doy
一年的第几天。取值范围为1~365/366。
gbase=# SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');
date_part
-----------
47
(1 row)

epoch

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
202
如果source 为timestamp with time zone,表示自1970-01-01 00:00:00-00 UTC 以来的秒
数(结果可能是负数)

如果source 为date 和timestamp,表示自1970-01-01 00:00:00-00 当地时间以来的秒数;
如果source 为interval,表示时间间隔的总秒数。
gbase=# SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16
20:38:40.12-08');
date_part
--------------

在 ON-Bar 环境中使用 ISM_ENCRYPTION 环境变量可以指定 Storage
Manager 是否使
用数据加密。

ISM_ENCRYPTI 的三个设置是受支持的:
XOR 使用加密。
NONE 不使用加密。
TRUE 使用加密。
如果 ISM_ENCRYPTION 设置为 NONE 或未作设置,
那么 ISM 服务器不使用加密。

如果 ISM_ENCRYPTION 在提出请求的 ON-Bar 进程的环境中设置为 TRUE 或
XOR,那么 Storage Manager 服务器使用加密来存储或检索在该请求中指定的数据。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 184 -

GBASEDBTSQLHOSTS 环境变量指定 SQL 客户机或数据库服务器可找到连接信息的位
置。

pathname 连接信息文件的完整路径名。
UNIX: 缺省值为 $GBASEDBTDIR/etc/sqlhosts
例如,以下命令会覆盖缺省位置,并指定 mysqlhosts 文件位于 /work/envt 目录
中:
setenv GBASEDBTSQLHOSTS /work/envt/mysqlhosts