我有下表:
+-----------+-----------+------------+----------+
| id | user_id | start_date | end_date |
| (integer) | (integer) | (date) | (date) |
+-----------+-----------+------------+----------+
字段 start_date
和 end_date
包含日期值,例如 YYYY-MM-DD
。
此表中的条目可能如下所示:(1, 120, 2012-04-09, 2012-04-13)
。
我必须编写一个查询来获取与特定时间段匹配的所有结果。
问题是,如果我想从 2012-01-01
到 2012-04-12
获取结果,即使有条目,我也会得到 0 个结果start_date = "2012-04-09"
和 end_date = "2012-04-13"
。
最佳答案
SELECT *
FROM mytable
WHERE (start_date, end_date) OVERLAPS ('2012-01-01'::DATE, '2012-04-12'::DATE);
Datetime functions是文档中的相关部分。
关于sql - 在 PostgreSQL 中获取两个日期之间的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170544/