人大金仓数据库KingbaseES 常见数据类型的使用示例-范围类型

常见数据类型的使用示例-范围类型

关键字:

范围类型、人大金仓、KingbaseES

范围类型介绍及Kingbase所包含的范围类型

范围类型是表达某种元素类型(称为范围的subtype)的一个值的范围的数据类型。例如, timestamp 的范围可以被用来表达一个会议室被保留的时间范围。在这种情况下,数据类型是 tsrange (“timestamp range”的简写)而 timestamp 是 subtype。subtype 必须具有一种总体的顺序。

KingbaseES 带有下列内建范围类型:

  • int4range — integer 的范围
  • int8range — bigint 的范围
  • numrange — numeric 的范围
  • tsrange — 不带时区的 timestamp 的范围
  • tstzrange — 带时区的 timestamp 的范围
  • daterange — date 的范围
  • 此外,还可以自定义一个范围类型

范围类型边界值介绍

每一个非空范围都有两个界限,下界和上界。这些值之间的所有点都被包括在范围内。一个包含界限意味着边界点本身也被包括在范围内,而一个排除边界意味着边界点不被包括在范围内。

在一个范围的文本形式中,一个包含下界被表达为“ [ ”而一个排除下界被表达为“ ( ”。同样,一个包含上界被表达为“ ] ”而一个排除上界被表达为“ ) 。

一个范围值的输入必须遵循下列模式之一:

(lower-bound,upper-bound)

(lower-bound,upper-bound]

[lower-bound,upper-bound)

[lower-bound,upper-bound]

Empty

其中 lower-bound为下边界值,而upper-bound为上边界值

使用示例

  1. int4range类型

create table test_int4range(type_name varchar,type_range int4range);

INSERT INTO test_int4range VALUES ('int4range', '(10, 20)');

select * from test_int4range;

  1. int8range类型

create table int8range(type_name varchar,type_range int4range);

INSERT INTO int8range VALUES ('int8range', '(10, 20)');

select * from int8range;

  1. numrange类型

create table numrange (type_name varchar,type_range int4range);

INSERT INTO numrange VALUES ('numrange ', '(1, 14)');

select * from numrange ;

  1. tsrange类型

create table tsrange (type_name varchar,type_range tsrange );

INSERT INTO tsrange VALUES ('tsrange ', '[2010-01-01 14:30, 2010-01-01 15:30)');

select * from tsrange ;

  1. tstzrange 

create table tstzrange (type_name varchar,type_range tstzrange );

INSERT INTO tstzrange VALUES ('tstzrange ', '(2010-01-01 14:30+8, 2010-01-01 15:30+8)');

select * from tstzrange ;

  1. daterange 

create table daterange (type_name varchar,type_range daterange);

INSERT INTO daterange VALUES ('daterange', '[2010-01-01, 2010-01-05)');

select * from daterange;

  1. 自定义范围类型

CREATE TYPE floatrange AS RANGE (

subtype = float8,

subtype_diff = float8mi

);

create table test_floatrange (type_name varchar,type_range floatrange);

INSERT INTO test_floatrange VALUES ('floatrange ', '[1.234, 5.678]');

select * from test_floatrange;

参考资料

《KingbaseES产品手册》

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值