2016-05-15 47 views
1

我们有一个日期示例:2016-05-10,我试图从数据库使用此日期查询。在日期之间搜索YII

我们有2个表:publish_at和end_at

SELECT * FROM `news` WHERE end_at <= '2016-05-11' AND publish_at >= '2016-05-10' 

这将返回不正确的数据,因为它并没有显示有publish_at的事件:2016年5月10日和2016年5月12日end_at

SELECT * FROM news WHERE '2016-05-11' BETWEEN publish_at AND end_at 

这将返回正确的项目,但如果日期是10或12不返回只有第一个查询

之间

回答

0

因为查询传请求,在2发布的所有事件返回正确的数据016/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' 
+0

每天都需要它没有结束倍数天 –

+0

能understebd您的要求,正是whar你需要什么? – user3600910

+0

基本上得到该日期之间的事件示例 事件1:开始05.10结束05.12 事件2:开始05.11结束05.11 SELECT * FROM'news' WHERE end_at <='2016-05-11'AND publish_at> ='2016 -05-10' 这应该显示这两个事件 –

相关问题