使用日期进行SQL查询的帮助

使用日期进行SQL查询的帮助,sql,Sql,我对SQL有点生疏,在SQL查询方面有点麻烦。以下是我当前的查询: SELECT DISTINCT restriction FROM restrictions WHERE id = ? AND start_date BETWEEN TO_DATE(?, 'yyyy/mm/dd') and TO_DATE(?, 'yyyy/mm/dd') ; 问号的设置取决于用户定义的参数,但这在这里并不重要。所以这里我得到了两个特定日期之间的任何限制,这很好。不过,我需要添加另一个条件。比如: OR

我对SQL有点生疏,在SQL查询方面有点麻烦。以下是我当前的查询:

 SELECT DISTINCT restriction FROM restrictions 
 WHERE id = ? AND start_date 
 BETWEEN TO_DATE(?, 'yyyy/mm/dd') and TO_DATE(?, 'yyyy/mm/dd') ;
问号的设置取决于用户定义的参数,但这在这里并不重要。所以这里我得到了两个特定日期之间的任何限制,这很好。不过,我需要添加另一个条件。比如:

OR start_date < TO_DATE(?, 'yyyy/mm/dd') and end_date is NULL;
或开始日期<截止日期(?'yyyy/mm/dd'),结束日期为空;
我知道我这里的内容不正确,但它应该给你一个想法……我希望上面的所有条件(第一个代码段中的条件),我希望它也能抓住任何开始日期早于第一个“?”的限制,并且相应的结束日期为空(第二个代码段)。我相信这可以在一个SQL查询中完成,非常感谢您的帮助,如果您有问题,请询问。

选择不同的限制
SELECT DISTINCT restriction 
FROM restrictions   
WHERE id = ? 
    AND (start_date BETWEEN TO_DATE(?, 'yyyy/mm/dd') and TO_DATE(?, 'yyyy/mm/dd')
        OR start_date < TO_DATE(?, 'yyyy/mm/dd') and end_date is NULL); 
来自限制 其中id=? 和(起始日期介于至日期(yyyy/mm/dd)和至日期(yyyy/mm/dd)之间) 或开始日期<截止日期(?'yyy/mm/dd'),结束日期为空;
我想这就是你想要的:

SELECT DISTINCT restriction FROM restrictions 
WHERE id = ? AND 
(start_date BETWEEN TO_DATE(?, 'yyyy/mm/dd') and TO_DATE(?, 'yyyy/mm/dd'))
OR (start_date < TO_DATE(?, 'yyyy/mm/dd') and end_date is NULL)
从限制中选择不同的限制
其中id=?及
(起始日期介于至日期(yyyy/mm/dd)和至日期(yyyy/mm/dd)之间)
或(开始日期<截止日期(?'yyyy/mm/dd'),结束日期为空)

我想我比想象中更接近了……这确实有效,感谢您的快速帮助/响应!