我需要一个 SQL 查询来检索所选时间段中包含的数据,时间段是用户从日历中选择的字符串。
例如,如果用户选择时间段“2012-07-01”到“2012-07-04”,我有下表:
ID || start_date || end_date
1 || 2012-07-02 || 2012-07-04
2 || 2012-07-06 || 2012-08-05
3 || 2012-07-01 || 2012-09-01
4 || 2012-06-25 || 2012-09-01
如果像这样写一个 sql查询:
SELECT ID, start_date, end_date
FROM TABLE
WHERE start_date BETWEEN '2012-07-01' AND '2012-07-04'
这将返回从“2012-07-01”到“2012-07-04”的所有行
ID || start_date || end_date
1 || 2012-07-02 || 2012-07-04
3 || 2012-07-01 || 2012-09-01
但是,我想要包含在此期间的所有数据,所以结果必须是:
ID || start_date || end_date
1 || 2012-07-02 || 2012-07-04
3 || 2012-07-01 || 2012-09-01
4 || 2012-06-25 || 2012-09-01
ID 为 4 的行也希望在结果中,因为用户选择的时间段在 start_date 和 end_date 之下。