在 PostgreSQL 中,范围类型是一种用于表示某种有序序列的数据范围的类型。范围类型主要用于处理连续的值范围,例如日期范围、数字范围等。PostgreSQL 提供了 tsrange(时间范围)、tstzrange(带时区的时间范围)、int4range(整数范围)等内置的范围类型。

以下是一些范围类型的示例:

时间范围 (tsrange)
-- 创建包含时间范围的表
CREATE TABLE event_schedule (
    event_name VARCHAR(255),
    event_time tsrange
);

-- 插入数据
INSERT INTO event_schedule (event_name, event_time) VALUES
    ('Meeting', '[2023-01-01 10:00:00, 2023-01-01 12:00:00)'),
    ('Conference', '[2023-02-01 14:00:00, 2023-02-01 18:00:00)');

在上述示例中,event_time 列使用了 tsrange 类型,表示了事件的开始时间和结束时间的范围。

整数范围 (int4range)
-- 创建包含整数范围的表
CREATE TABLE score_range (
    player_name VARCHAR(255),
    score int4range
);

-- 插入数据
INSERT INTO score_range (player_name, score) VALUES
    ('Alice', '[100, 200)'),
    ('Bob', '[150, 250)');

在上述示例中,score 列使用了 int4range 类型,表示了玩家的分数范围。

查询范围数据
-- 查询在某个时间范围内的事件
SELECT * FROM event_schedule
WHERE event_time && '[2023-01-01 11:00:00, 2023-01-01 15:00:00)'::tsrange;

上述查询返回在给定时间范围内的事件。

范围类型允许你以更直观的方式表示和查询有序数据的范围,提高了数据库对于这类数据的处理能力。在范围类型上,你可以执行范围之间的交集、并集、包含等操作。


转载请注明出处:http://www.zyzy.cn/article/detail/8165/PostgreSQL