【发布时间】:2014-02-20 23:44:33
【问题描述】:
(我在这里找到了解决方案的逻辑:Determine Whether Two Date Ranges Overlap)
表结构为:
contracts[start_date, end_date]
我的表单使用两个输入,inp_start_date 和 inp_end_date。我想使用它们的值来选择范围内的合同。
示例(伪):
- 合同在其 start_date 到 end_date 之间有效。
- 获取从 inp_start_date 到 inp_end_date 之间的所有有效合同
为此查询设置条件的最佳方法是什么?
编辑
示例:
如果我的inp_start_date is 5/21/2005
和inp_end_date is 9/21/2005
然后它将选择在 inp_start_date 和 inp_end_date 之前和之后开始和结束的合同,只要它在该时间范围内有效,甚至部分有效。
查询将查找其日期范围与 inp_start 和 inp_end 日期范围相交的所有合同。
合同和输入示例:
contract.start_date = 1.1.2001 |#| contract.end_date = 5.31.2001
input.start_date = 10.21.2000 |#| input.end_date = 2001.3.21
这个合约应该被捕获,因为它至少有一部分在范围内。
【问题讨论】:
-
这个问题到底是关于什么的?你知道如何以任何方式做到这一点吗?这是2列与
AND的基本比较。 -
日期可以像其他任何东西一样进行比较。使用
<或>或BETWEEN。如果您在实施时遇到问题,请通过更具体的问题告诉我们,我们可以为您提供帮助。 -
请重新阅读我的问题.. 这不是一个单一的日期!一个范围内。这是一个范围内的范围。请检查编辑。
标签: mysql date date-range