SQL查詢時,根據日期範圍查詢周

週數據會有weekbegin和weekend兩個字段,用來描述周的開始日期和結束日期。sql

如今項目中的日曆控件不支持周查詢,只支持日期查詢,因此目前面臨的問題是,根據時間範圍,查詢周。ui

最終sql以下:code

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查詢。blog

簡單說一下邏輯思考過程:class

周開始時間結束時間的字段是weekbegin,weekenddate

頁面查詢的時間範圍是begindate和enddateselect

那麼根據這四個時間字段的順序多是:數據

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

相關文章
相關標籤/搜索