誕生日リマインダー システムを実装するために Postgres データベースからデータを取得しようとしていますが、クエリを実行するのに少し問題があります。基本的に、生年月日フィールドが特定の 1 か月の範囲内にあるすべてのレコードをプルしたいと考えています。次のクエリを試しました。
SELECT *
ALL persons
WHERE EXTRACT(MONTH from birthday) >= 9
AND EXTRACT(DAY from birthday) >= 15
INTERSECT
SELECT *
ALL persons
WHERE EXTRACT(MONTH from birthday) <= 10
AND EXTRACT(DAY from birthday) <= 15
クエリの最初の部分 ( の前INTERSECT
) は希望どおりに機能しているようですが、2 番目の部分では15 日より前の月の日付が除外されています。たとえば、9/20 に誕生日があった場合、最初の部分にはそれが含まれますが、2 番目の部分では 15 日目以降であるため除外されます (10/15 より前であっても)。これを修正する方法はありますか?