优选主流主机商
任何主机均需规范使用

SQL日期范围查询怎么查(附详细代码)

周数据会有weekbegin和weekend两个字段,用来描述周的开始日期和结束日期。现在项目中的日历控件不支持周查询,只支持日期查询,所以目前面临的问题是,根据时间范围,查询周。

最终SQL如下:

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查询。

简单说一下逻辑思考过程:

周开始时间结束时间的字段是weekbegin,weekend

页面查询的时间范围是begindate和enddate

那么根据这四个时间字段的顺序可能是:

weekbegin weekend begindate enddate

1 2 3 4

1 3 2 4

1 4 2 3

2 3 1 4

3 4 1 2

最终得出以上SQL

未经允许不得转载:搬瓦工中文网 » SQL日期范围查询怎么查(附详细代码)