日期范围之间的日期范围

时间:2019-06-15 15:23:49

标签: sql sql-server

我正在编写一个SQL查询,我必须在其中查找日期范围内的结果。

我有四个参数 OEFrom(保存在数据库中) OETo(保存在数据库中) 到和从(用户提供)。

我的查询就像

select * from tblName where OEFrom>=From and To>=OETo

问题是此查询仅在ToFrom和From位于OEFrom和OETo之间时才起作用。 如果它们在外面,则不会返回结果。从我的理解来看,我有4种情况: *  1. OEFrom>从和OEToFrom和OETo>到  3. OEFromTo

考虑到所有这些情况,有没有办法我可以编写查询。

2 个答案:

答案 0 :(得分:0)

如果要重叠,请使用以下逻辑:

select *
from tblName
where OEFrom <= To AND
      OETo >= From;

如果两个范围都在另一个端点之前开始(或者,在这种情况下,如果要包含端点,则在此之前或之前),则两个范围重叠。

答案 1 :(得分:0)

您也可以检查此内容

SELECT * 
FROM your_table
WHERE OEFrom BETWEEN [From] AND [To]  
AND OETo BETWEEN [From] AND [To]