我们有一个日期示例:2016-05-10,我正在尝试使用此日期从数据库中获取查询。
我们有2个表:publish_at和end_at
SELECT * FROM `news` WHERE end_at <= '2016-05-11' AND publish_at >= '2016-05-10'
这会返回不正确的数据,因为它没有显示具有publish_at的事件:2016-05-10和end_at 2016-05-12
SELECT * FROM news WHERE '2016-05-11' BETWEEN publish_at AND end_at
这将返回正确的项目,但如果日期为10或12,则仅在
之间不返回答案 0 :(得分:0)
第一个查询返回正确的数据,因为查询需要在2016/05/10或之后的2016/05/11或之前发布的所有事件。
将查询更改为
Select * from news where end_at between '2016-05-10' and '2016-05-11' or publish_at betweeb '2016-05-10' and '2016-05-12'