MYSQL按指定日期查询语句如何写

我想列出近一年每个月的数据,但是我们数据汇总日期是按照上月25日至本月24日为一个月,查询语句要如何写,有没有大佬指点一下。

3310337abce1ef2ce0fa0094e5a63c6.png

FineReport 用户3aCDb8859785 发布于 2022-3-20 16:58 (编辑于 2022-3-20 18:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-3-20 17:07(编辑于 2022-3-20 19:47)

你的业务表如果有日期,直接where限制上月25号到本月24日查询就可以了(你的难点在哪里不太清楚)

或者

弄一个日期维度度。。。。。就是比如说你有一个表是10年的每一天的日期都在里面,然后用这个表做为主表去关联你的数据就可以了。。。最后再where 限制一下数据取上月25到本月24日不就可以了

0320.png

where 1=1

and date_time >='${date(year(today()),month(today())-1,25)}'

and date_time <='${date(year(today()),month(today()),24)}'

会按系统的日期自动查询上月25到本月24号的数据。。支持跨年。。。

image.png

------------------我是分隔符号-------------------

select 

 t.mydate,

 t.value_s,

date_format( ADDDATE(ADDDATE(t.mydate,INTERVAL - 24 DAY ),INTERVAL 1 MONTH ),'%Y-%m') AS 判断后的年月

 from (

select '2021-03-23' as mydate,72 as value_s union all

select '2021-03-24' as mydate,69 as value_s union all

select '2021-03-25' as mydate,72 as value_s union all

select '2021-03-26' as mydate,78 as value_s union all

select '2021-03-27' as mydate,39 as value_s union all

select '2021-03-28' as mydate,34 as value_s union all

select '2021-03-29' as mydate,66 as value_s union all

select '2021-03-30' as mydate,37 as value_s union all

select '2021-03-31' as mydate,74 as value_s union all

select '2021-04-01' as mydate,34 as value_s union all

select '2021-04-03' as mydate,38 as value_s union all

select '2021-04-24' as mydate,38 as value_s union all

select '2021-04-25' as mydate,997 as value_s union all

select '2021-04-27' as mydate,21 as value_s union all

select '2021-05-24' as mydate,391 as value_s union all

select '2021-05-25' as mydate,391 as value_s

) t

  • 用户3aCDb8859785 用户3aCDb8859785(提问者) 老师 你好,我想要查询的结果 我在问题里面增加了图片,您看下这种数据应该怎么 写查询语句。
    2022-03-20 18:29 
  • CD20160914 CD20160914 回复 用户3aCDb8859785(提问者) 看修改后的答案。。。。拿到这一段后,我相信你会自己做汇总了吧。。
    2022-03-20 19:46 
  • CD20160914 CD20160914 回复 用户3aCDb8859785(提问者) 第一列是原始数据。。第三列是判断后的年月。你再用这个年月汇总就正确了吧。这个汇总你就自己做group by 与sum求和了。。
    2022-03-20 19:48 
  • 用户3aCDb8859785 用户3aCDb8859785(提问者) date_format( ADDDATE(ADDDATE(t.mydate,INTERVAL - 24 DAY ),INTERVAL 1 MONTH ),\'%Y-%m\') AS 判断后的年月 这句查询语句 就是我需要的,谢谢。
    2022-03-21 09:09 
  • 2关注人数
  • 402浏览人数
  • 最后回答于:2022-3-20 19:47
    请选择关闭问题的原因
    确定 取消
    返回顶部