MySQL中获取日期所在周的周一和周日

2022-12-28  本文已影响0人  数据老菜鸟

数据有时候需要进行周的同比和环比操作,而数据库中周是数字排列的,比如2022年的第20周,这个时候我们最好将第20周的范围给出,便于用户在报表展示及数据分析时候使用,

我们使用mysql来展示下如何使用

按照我们的习惯 周一开始  周日结束,算一个自然周,我们有一个日期码表,里面有连续的日期字段

select the_date

from dim_date;

按照我们的习惯每周是从周一开始,周日结束算完整的一周,我们来获取

获取每周的周一 和周日,mysql中方法如下

select the_date,

concat(

DATE_FORMAT( date_add(the_date,INTERVAL -weekday(the_date) DAY), '%Y-%m-%d'), ' : ',

DATE_FORMAT( date_add(the_date,INTERVAL 6-weekday(the_date) DAY),'%Y-%m-%d')) as week_section

from dim_date;


国际惯例周日算一周开始 周六算结束的计算

select the_date, case when weekday(the_date)=6 then DATE_FORMAT( the_date,'%Y-%m-%d')

                      else  DATE_FORMAT( date_add(the_date,INTERVAL -weekday(the_date)-1 DAY),'%Y-%m-%d')

                      end as st,

case when weekday(the_date)=6 then DATE_FORMAT( date_add(the_date,INTERVAL 6 DAY),'%Y-%m-%d')

                      else  DATE_FORMAT( date_add(the_date,INTERVAL 5-weekday(the_date) DAY),'%Y-%m-%d')

                      end as ed

from dim_date

上一篇下一篇

猜你喜欢

热点阅读