所以我要试着解释一下:
我有日期选择器,您可以选择2个日期(开始和结束)。
例如: 01-01-2012至11-12-2012
现在我将使用这些日期来搜索表格中的工作:
startdate job:2012年10月10日 截止日期:2012年12月20日
我希望得到这份工作,因为工作在这两个日期之间运行。
我尝试使用BETWEEN,但这似乎对我不起作用。有人可以帮我查询吗?当然,我将日期格式翻译为yyyy-mm-dd。
重点是,即使只有1天在日期选择日期的范围内,我也想显示这份工作。
答案 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图表:
答案 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';