问题是这样的。
我希望获得1999年11月所有演出的清单。如果演出在11月之前开始或在11月之后结束都无关紧要。
Engagements表是EA_Engagements,字段名称是
他们都是DATE形式。
答案 0 :(得分:5)
select *
from EA_Engagements
where StartDate <= '1999-11-30'
and EndDate >= '1999-11-01'
答案 1 :(得分:0)
'Nedret Recep'的回答在我的案例中有类似但不同的情况。我想查找给定的日期范围是否与数据库中的任何其他事件日期范围重叠。
Table (Master Blocking Dates)
mbd_id mbd_from_date mbd_to_date mbd_reason
1 2013-10-16 2013-10-19 Demo Blocking 1
2 2013-10-21 2013-10-24 Demo2
3 2013-10-31 2013-11-04 Demo3
我基于'Nedret Recep'建议的查询就是这个 -
SELECT * FROM ib_master_blocked_dates WHERE venue_id=$venue_id AND
(
(mbd_from_date BETWEEN '$from_date' AND '$to_date')
OR
(mbd_to_date BETWEEN '$from_date' AND '$to_date')
OR
('$to_date' BETWEEN mbd_from_date AND mbd_to_date)
OR
('$from_date' BETWEEN mbd_from_date AND mbd_to_date)
)
结果:
mbd_id mbd_from_date mbd_to_date mbd_reason
1 2013-10-16 2013-10-19 Demo Blocking 1
2 2013-10-21 2013-10-24 Demo2
答案 2 :(得分:-1)
这里是:
SELECT
name, StartDate, EndDate
FROM
EA_Engagements
WHERE
StartDate BETWEEN '1999-11-01' AND '1999-11-30' OR
Enddate BETWEEN '1999-11-01' AND '1999-11-30'