mysql查询月初到今日的问题。求大佬解救。
  1. 比如今天是2019年4月10号,我想获得四月初到今天的数据,以及上个月月初到上个月10号的数据,以及今年年初到今日的数据,以及(今天周3)周一到周三的数据。本周周一到周三的数据。
  2. 我现在已经写好时间的转换,就是不知道数据库查询时如果处理时间段的问题, SELECT sum(ajea.active_electrical) AS value FROM apd_jc_ele_active ajea LEFT JOIN t_pd_sb_znkg tpsz ON tpsz.OBJ_ID = ajea.object_id WHERE ajea.station_id = #{stationId} AND tpsz.KGLX = '1' AND date_format(ajea.create_time,'%Y%m%d') = date_format(#{queryDate}, '%Y%m%d') 这边数据转换实在java代码里写的,#{queryDate}是传过来的时间,比如今天10号,这边传过来就是2019-04-10,传过来的上周的今日就是2019-04-03,因为今天周三,所以就想查上周一到上周三的数据和(如果是周四就查周一到周四的和),四月初到10号的值,上个月月初到上个月10号的值,去年年初到四月10号的值,今年年初到四月10号的值,比较复杂,星期,月份,年的查询可以分开写,我现在就是不知道怎么写where语句。 小菜鸟一只 求大佬解救。

2个回答

没看懂你的描述,看题目的话查询月初到今日的,你拿到今天的值可以写个时间类获取本月第一天的值(你描述里面的逻辑可以在这里做)
,完后传个map过来,里面放时间段,完后date_format(ajea.create_time,'%Y%m%d') >= startTime and date_format(ajea.create_time,'%Y%m%d')<=endTime
就可以了。不知道你是不是这个意思

qq_33302985
别玩丐帮 回复qq_42024186: date_sub(curdate(),interval 1 week) <= date_format(ajea.create_time,'%Y%m%d') 是这个?
大约一年之前 回复
qq_42024186
qq_42024186 谢谢您 您这个方法可以 我本来想问就是有没有一个mysql的函数直接计算哈哈哈,懒癌,那如果想取本周数据呢,有没有一个函数直接计算周一到今天的,我记得有一个来着,但是找不到了
大约一年之前 回复

获取月初的方法:
select to_char(trunc(add_months(last_day(sysdate), -1) + 1),'yyyymmdd') from dual;
所以
where date between to_date(to_char(trunc(add_months(last_day(sysdate), -1) + 1),'yyyymmdd'),'yyyymmdd' ) and sysdate

qq_42024186
qq_42024186 好的 谢谢 您
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐