sql查詢按周查詢出現的跨年問題

2021-09-07 19:12:56 字數 1043 閱讀 3845

從之前的帖子上看到,按周查詢的sql語句,元旦過後的第二週發現資料出不來了,才知道按周查詢還有乙個跨年的問題

根據上次得到的按周查詢的sql進行了一下調整,完美解決了跨年的問題

直接利用date_sub(now(), interval 7 day) 函式,對時間驚醒處理,減去七天,然後再用 yearweek()函式去跟資料庫裡的時間進行篩選,最後再按week分組,這樣就可以處理掉跨年時的問題了。

修改後的查詢近七周(不包括本週)

where

yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 0 day))

or yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 7 day))

or yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 14 day))

or yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 21 day))

or yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 28 day))

or yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 35 day))

or yearweek(date_format(你的表的時間字段, '%y-%m-%d'),1) = yearweek(date_sub(now(), interval 49 day))

group by

周次;

這裡按星期一為每週的第一天計算。

oracle 跨年按周分組查詢

最近因為專案需求用到了按周分組 group by g.shop id,to char ds.stat date,iw 看之前的查詢語句發現了語句不具備跨年分組的功能 於是乎新增上了年 group by g.shop id,to char ds.stat date,yyyyiw 本來認為這個問題就被簡...

雜湊 查詢出現過的數字

time limit 1000ms memory limit 65536k 有乙個資料字典,裡面存有n個數字 n 100000 小明現在接到乙個任務,這項任務看起來非常簡單 給定m個數字,分別查詢這m個數字是否出現在字典之中 但是考慮到資料量的問題,小明找到了善於程式設計的你,希望你可以幫他解決這個...

SQL 按匹配條件的多少查詢出匹配度最高的配置資料

按匹配條件的多少查詢出匹配度最高的配置資料.有的時候需要預設配置,但是又需要特殊配置.如何按匹配條件的多少自動的取得特殊配置和預設配置.下面是sqlserver 按匹配條件的多少查詢出匹配度最高的配置資料.select top 1 from select case when qf yydh 3000...