在PostgreSQL 中執行此小時的操作查詢
在PostgreSQL 中,可以使用tsrange 資料類型來表示沒有時間的時間範圍區。這可用於簡化對操作時間的查詢,這可能會圍繞週末。
表格版面配置
使用下列架構建立一個新表:
CREATE TABLE hoo ( hoo_id serial PRIMARY KEY, shop_id int NOT NULL, hours tsrange NOT NULL );
營業時間列將儲存每個營業時間>
插入資料
您可以使用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);
結論
使用 tsrange 資料類型和 f_hoo_hours()函數,您可以簡化 PostgreSQL 中數小時操作的查詢。透過在小時列上建立 GiST 或 SP-GiST 索引,您可以進一步提高這些查詢的效能。以上是如何使用「tsrange」高效查詢 PostgreSQL 的運行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!