範囲型の使い方

始まりと終わりを 1 つの値で持つ

書き方

daterange('2026-01-01', '2026-01-05')([) は始まりを含み終わりを含まない)
範囲 && 範囲(重なる)  範囲 @> 値(含む)
lower(範囲)  upper(範囲)
EXCLUDE USING gist (列 WITH &&)

日付や数の範囲を 1 つの列で持てます。&& で重なり、@> で含むかを調べます。EXCLUDE 制約を付けると、重なる範囲を入れようとしたときにエラーになります(予約のダブルブッキングを防ぐ)。

例

SELECT * FROM bookings WHERE stay && daterange('2026-08-10', '2026-08-12');

実際に打って練習する

PostgreSQL コースの Lv22「始まりと終わり 範囲型」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜2 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。

PostgreSQL の構文一覧(psql・JSONB・PL/pgSQL)へ戻る