查询的结果,其中2个日期范围相交

时间:2012-12-11 14:30:35

标签: php date range

所以我要试着解释一下:

我有日期选择器,您可以选择2个日期(开始和结束)。

例如: 01-01-2012至11-12-2012

现在我将使用这些日期来搜索表格中的工作:

startdate job:2012年10月10日 截止日期:2012年12月20日

我希望得到这份工作,因为工作在这两个日期之间运行。

我尝试使用BETWEEN,但这似乎对我不起作用。有人可以帮我查询吗?当然,我将日期格式翻译为yyyy-mm-dd。

重点是,即使只有1天在日期选择日期的范围内,我也想显示这份工作。

2 个答案:

答案 0 :(得分:2)

您正在寻找2个日期范围的交集。因此,给定日期范围d1和d2,您知道d2.start必须在d1.end之前发生。你也知道d2.end必须在d1.start之后发生。如果两个条件都为真,那么您就有重叠。在SQL中:

SELECT d.* 
FROM thedates d
WHERE d.jobstart < $myenddate
  AND d.jobend > $mystartdate

为清晰起见,ETA图表:

enter image description here

答案 1 :(得分:0)

只需将语句用作

即可
SELECT * FROM dummydb.tblorders t where t.date_purchased >= '2012-03-24 00:00:00' and t.date_purchased <= '2012-03-24 23:59:59';