SQL查询时,根据日期范围查询周

Posted HarkLee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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查询时,根据日期范围查询周的主要内容,如果未能解决你的问题,请参考以下文章

在 R 闪亮的日期范围内传递 SQl 查询

sql 查询时间、日期范围内的数据

SQL在where语句中使用日期范围的选择子查询来确定该日期范围内的最大值

SQL 查询日期范围保存在 2 列中

匹配Mysql按周查询,显示周期范围 (周转日期)

SQL 如何查询日期在一定范围内的数据