我正在尝试从 Postgres 数据库中提取一些数据来实现生日提醒系统,但是在使查询正常工作时遇到了一些麻烦。基本上,我想提取所有生日字段在某个一个月范围内的记录。我尝试了以下查询:
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
)似乎可以按我的意愿工作,但第二部分不包括15 日之前任何一个月的日期。例如,如果 9/20 有生日,第一部分将包括它,但第二部分将排除它,因为它是在第 15 天之后(即使它仍然落在 10/15 之前)。任何想法如何解决这个问题?