我有下表:
ID DATE_START DATE_END
------- ---------- --------
11944 10.01.15 20.01.15
我想根据日期范围选择行,例如
01.01.15 - 25.01.15
15.01.15 - 25.01.15
在这两种情况下,我都想选择上面提到的列。这可能与SQL有关吗?我尝试了一些东西,但我没有得到第二个查询工作。我使用Oracle DB:
用法示例:
我想查询ma datatable如下:显示15.01.15
和25.01.15
之间的所有条目。这应该产生ID为11944
答案 0 :(得分:2)
如果两个句点重叠,您希望返回一行,假设两列都定义为DATE
。
select *
from tab
where DATE_START <= DATE '2015-01-25' -- end of searched period
and DATE_END >= DATE '2015-01-15' -- begin of searched period
在标准SQL中,有OVERLAPS
谓词,而Oracle(官方)不支持该谓词:
where (DATE_START, DATE_END) OVERLAPS (DATE '2015-01-15', DATE '2015-01-25')