Pur*_*h32 0 php mysql date range
我正在研究一个事件callendar,我很难找到一个mysql查询,在一个给定的范围内选择我的事件.我的活动有开始/结束日期,我的范围也是如此(月份).
我尽力描绘我想要的东西:(我想选择事件1,2,3,4而不是5或6)
|========= April ===========| => Range
+--(1)--+ +--(2)--+ => Partialy Overlapping Events
+--(3)--+ => Events included in range
+----------------(4)----------------+ => Ovelapping events
+-(5)-+ +-(6)-+ => Events outside of range
Run Code Online (Sandbox Code Playgroud)
我发现了这个类似的问题:2列Mysql日期范围在PHP中搜索,但我不认为这是重复的,好像我在我的问题中正确理解范围有开始和结束日期,而在另一个问题中范围是单个日期.
解决方案仍然与您要链接的问题非常相似; 试试这个查询:
SELECT * FROM events e
WHERE `start` <= [RANGE.end]
AND `end` >= [RANGE.start]
Run Code Online (Sandbox Code Playgroud)
你当然必须用你的范围的第一个和最后一个日期替换[RANGE.start]和[RANGE.end].如果例如RANGE.start ='2011-04-01'和RANGE.end ='2011-04-30',则上述查询将给出11月4日发生的所有结果.
根据您是否要选择仅"触摸"范围的事件(意味着它们具有共同的边界日期,但实际上不重叠),您可以替换<=/ >=by </ >.
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |