PostgreSQL 日付の重複をチェックする
- 作成日 2021.11.01
- PostgreSQL
- PostgreSQL
PostgreSQLで、日付の重複をチェックする手順を記述してます。
環境
- OS Rocky Linux release 8.4 (Green Obsidian)
- PostgreSQL 14.0
- pgadmin 6.0
手順
日付の重複をチェックする場合は、「OVERLAPS」を使用します。
(start1, end1) OVERLAPS (start2, end2)
or
(start1, length1) OVERLAPS (start2, length2)
実際に、判定してみます。
SELECT (date '2022-01-01', date '2022-02-01') OVERLAPS
(date '2022-01-10', date '2022-02-10')
実行結果
範囲内に存在するため「true」が返ります。
以下のように範囲外を指定すると「false」が返ります。
SELECT (date '2022-01-01', date '2022-02-01') OVERLAPS
(date '2022-02-02', date '2022-02-10')
実行結果
また、endとstartが同じだった場合も「false」となります。
SELECT (date '2022-01-01', date '2022-02-01') OVERLAPS
(date '2022-02-01', date '2022-02-10')
実行結果
ただし、以下のように同じ日付を指定した場合は「true」となります。
SELECT (date '2022-02-01', date '2022-02-01') OVERLAPS
(date '2022-02-01', date '2022-02-10')
実行結果
interval使用
intervalを使用しても、結果は同じです。
SELECT (date '2022-02-01', interval '30 days') OVERLAPS
(date '2022-02-05', interval '30 days')
実行結果
-
前の記事
node.js 「通常の関数」と「アロー関数」のパフォーマンスを計測する 2021.11.01
-
次の記事
Ruby 配列の総和を求める場合のパフォーマンスを計測する 2021.11.01
コメントを書く