在 PostgreSQL 中执行此小时的操作查询
在 PostgreSQL 中,可以使用 tsrange 数据类型来表示没有时间的时间戳范围区。这可用于简化对操作时间的查询,这可能会围绕周末。
表布局
使用以下架构创建一个新表:
CREATE TABLE hoo ( hoo_id serial PRIMARY KEY, shop_id int NOT NULL, hours tsrange NOT NULL );
营业时间栏将存储每个营业时间shop.
插入数据
您可以使用 f_hoo_hours() 函数将数据插入到 hoo 表中,该函数采用两个时间戳并返回 tsrange 值:
INSERT INTO hoo(shop_id, hours) VALUES (123, f_hoo_hours('2016-01-11 00:00+04', '2016-01-11 08:00+04'));
查询数据
您可以使用以下查询查询 hoo 表以查找在给定时间营业的商店:
SELECT * FROM hoo WHERE hours @> f_hoo_time(now());
此查询将返回所有在给定时间营业的商店当前时间开放。
索引
为了提高性能在查询的过程中,您可以在小时列上创建 GiST 或 SP-GiST 索引:
CREATE INDEX hoo_hours_gist_idx ON hoo USING gist (hours);
该索引将允许 PostgreSQL 快速找到在给定时间营业的商店。
结论
使用 tsrange 数据类型和 f_hoo_hours()函数,您可以简化 PostgreSQL 中数小时操作的查询。通过在小时列上创建 GiST 或 SP-GiST 索引,您可以进一步提高这些查询的性能。
以上是如何使用'tsrange”高效查询 PostgreSQL 的运行时间?的详细内容。更多信息请关注PHP中文网其他相关文章!