介紹如何在 PostgreSQL 資料庫中使用 INTERVAL
資料型別儲存時間區間資料。
PostgreSQL 資料庫的
INTERVAL
是專門用來儲存時間區間的資料類型,以下是使用的教學與範例。
這是建立資料表的範例,其中 my_int
就是用來儲存時間區間的欄位:
-- 建立資料表 CREATE TABLE my_table ( id serial PRIMARY KEY, name varchar(50), my_int interval -- 時間區間欄位 );
CREATE TABLE
建立資料表之後,接著插入資料,時間區間的表示方法有很多種,以下是一些常見的範例:
-- 插入資料 INSERT INTO my_table (name, my_int) VALUES ('Mary', '46:29:15'), ('Joe', 'P1-3-15'), ('Abbot', '3 4:05:09'), ('Bardo', 'P1Y2M3DT4H5M6S'), ('Ketty', '1 year 2 months 3 days 4 hours 5 minutes 6 seconds');
INSERT 0 5
插入資料的結果如下:
-- 查看資料 SELECT * FROM my_table;
id | name | my_int ----+-------+------------------------------- 1 | Mary | 46:29:15 2 | Joe | 1 year 3 mons 15 days 3 | Abbot | 3 days 04:05:09 4 | Bardo | 1 year 2 mons 3 days 04:05:06 5 | Ketty | 1 year 2 mons 3 days 04:05:06 (5 rows)
更多關於時間區間表示法,請參考 PostgreSQL 的文件。
以下是以時間區間條件來查詢資料的範例:
-- 查詢超過 1 年 3 個月的資料 SELECT * FROM my_table WHERE my_int > '1 year 3 months';
id | name | my_int ----+------+----------------------- 2 | Joe | 1 year 3 mons 15 days (1 row)
-- 查詢介於 1 天與 3 天的資料 SELECT * FROM my_table WHERE my_int BETWEEN '1 day' AND '3 days';
id | name | my_int ----+------+---------- 1 | Mary | 46:29:15 (1 row)
測試完之後,刪除測試用的資料表:
-- 刪除資料表 DROP TABLE my_table;