PostgreSQL で日付に日数を追加する
Shihab Sikder
2023年6月20日
Postgres には、date
情報をさまざまなスタイルで保存するために使用できる date
型のデータがあります。 Postgres は、特定の単位で date
または時間を増減することもできます。
このチュートリアルでは、PostgreSQL を使用しているときに date
に何日も追加する方法を説明します。
Date
タイプのフィールドを持つテーブルを作成する
さまざまなフィールド/列を含む project
テーブルがあります。 このテーブルには作成日 date
があり、date
を追加して表示したい整数値を持つ別の列があることに注意してください。
create table project (
id INT,
Project VARCHAR(50),
Created DATE,
Interval INT
);
insert into project (id, Project, Created, Interval)
values
( 1, 'Heron Therapeutics, Inc.', '2021-10-23', 9),
( 2, 'CryoPort, Inc.', '2022-05-07', 5),
( 4, 'Turtle Beach Corporation', '2022-07-27', 10),
( 5, 'Banco Santander Chile', '2022-02-08', 6),
( 6, 'BLACKROCK INTERNATIONAL, LTD.', '2022-07-28', 10),
( 7, 'Sohu.com Inc.', '2021-10-14', 12),
( 8, 'Northeast Bancorp', '2022-07-20', 6);
select * from project;
出力:
id | project | created | interval
----+-------------------------------+------------+----------
1 | Heron Therapeutics, Inc. | 2021-10-23 | 9
2 | CryoPort, Inc. | 2022-05-07 | 5
4 | Turtle Beach Corporation | 2022-07-27 | 10
5 | Banco Santander Chile | 2022-02-08 | 6
6 | BLACKROCK INTERNATIONAL, LTD. | 2022-07-28 | 10
7 | Sohu.com Inc. | 2021-10-14 | 12
8 | Northeast Bancorp | 2022-07-20 | 6
(7 rows)
date
で日数を追加
クエリ内で interval
メソッドを使用してクレーム date
を取得できます。 そのため、created
列に interval
を追加して出力します。 クエリは次のようになります。
select id,
project,
created,
interval,
date(created + interval '1 day' * interval) as deadline
from project;
出力は次のとおりです。
id | project | created | interval | deadline
----+-------------------------------+------------+----------+------------
1 | Heron Therapeutics, Inc. | 2021-10-23 | 9 | 2021-11-01
2 | CryoPort, Inc. | 2022-05-07 | 5 | 2022-05-12
4 | Turtle Beach Corporation | 2022-07-27 | 10 | 2022-08-06
5 | Banco Santander Chile | 2022-02-08 | 6 | 2022-02-14
6 | BLACKROCK INTERNATIONAL, LTD. | 2022-07-28 | 10 | 2022-08-07
7 | Sohu.com Inc. | 2021-10-14 | 12 | 2021-10-26
8 | Northeast Bancorp | 2022-07-20 | 6 | 2022-07-26
interval
メソッドがなくても機能します。 クエリを次のように書くこともできます。
select id,
project,
created,
interval,
date(created + interval) as deadline
from project;
出力:
id | project | created | interval | deadline
----+-------------------------------+------------+----------+------------
1 | Heron Therapeutics, Inc. | 2021-10-23 | 9 | 2021-11-01
2 | CryoPort, Inc. | 2022-05-07 | 5 | 2022-05-12
4 | Turtle Beach Corporation | 2022-07-27 | 10 | 2022-08-06
5 | Banco Santander Chile | 2022-02-08 | 6 | 2022-02-14
6 | BLACKROCK INTERNATIONAL, LTD. | 2022-07-28 | 10 | 2022-08-07
7 | Sohu.com Inc. | 2021-10-14 | 12 | 2021-10-26
8 | Northeast Bancorp | 2022-07-20 | 6 | 2022-07-26
ここでは、deadline
列が created
列に日数の間隔を追加していることがわかります。 Postgres の日付と時刻の詳細については、次の公式 ドキュメント を参照してください。
著者: Shihab Sikder