搜索日期范围内的日期是否包含在日期范围内

时间:2020-10-01 16:02:00

标签: sql oracle datetime where-clause

我使用oracle

create table "prba" 
( 
  "prba_id" number(18,0) not null, 
  "start_date" date not null, 
  "end_date" date 
);

我有一些数据

prba_id | start_date | end_date

    900 | 2020-01-20 | 2020-07-01
    901 | 2017-01-20 | 2018-08-03
    911 | 2020-09-01 | 

我的日期范围是2020-01-20(不包括)到2021-01-20(包括)

我搜索以获取该范围的日期包含在prba的start_date / end_date中的行...如果end_date为null,我们可以假设end_date为start_date + 1年

1 个答案:

答案 0 :(得分:1)

我了解您想要日期范围重叠参数范围的行。如果是这样,请考虑:

select t.*
from prba
where coalesce(end_date, add_months(start_date, 12)) > date '2020-01-20'
  and start_date <= date '2020-07-20'