周数据会有weekbegin和weekend两个字段,用来描述周的开始日期和结束日期。sql
如今项目中的日历控件不支持周查询,只支持日期查询,因此目前面临的问题是,根据时间范围,查询周。ui
最终sql以下:blog
select uid,weekbegin,weekend,sum(activeCount),sum(newCount) from rv_Cloud_SummaryWeek where (date(weekbegin)>=date('2018-05-01') and date(weekbegin)<='2018-05-31') or (date(weekend)>=date('2018-05-01')
and date(weekend)<=date('2018-05-31')) or (date(weekbegin)<=('2018-05-01') and date(weekend)>=date('2018-05-31')) group by uid,weekbegin,weekend
使用的穷举法作的处理,即罗列出全部的状况进行or查询。class
简单说一下逻辑思考过程:date
周开始时间结束时间的字段是weekbegin,weekendselect
页面查询的时间范围是begindate和enddate数据
那么根据这四个时间字段的顺序多是:项目
weekbegin weekend begindate enddate查询
1 2 3 4di
1 3 2 4
1 4 2 3
2 3 1 4
3 4 1 2
最终得出以上SQL