MYSQL查询近一年,近一周,今天数据 没有数据返回0

近一年

select count(0) total,date_format(gmt_created,'%Y%m') timefrom application_mainwhere is_del!=2and DATE_ADD(NOW(),INTERVAL(-12) MONTH) <= gmt_created group by date_format(gmt_created,'%Y%m')order by date_format(gmt_created,'%Y%m') desc

此sql运行后会返回近一年有数据的月份 需要配合工具类进行使用 工具类如下

 /*** 获取近一年 年月时间*/public static List<ApplicationMainDto> getInitMonthMapWithZero2(Integer num) {List<ApplicationMainDto> list = new ArrayList<>();Calendar c = Calendar.getInstance();for (int i = 0; i < num; i++) {int k = c.get(Calendar.YEAR);int j = c.get(Calendar.MONTH) + 1 - i;String date = "";if (j >= 1) {date = k + (j >= 10 ? "" : "0") + j;} else {int p = 11 - i;//剩余循环次数int m = c.get(Calendar.YEAR) - 1;int n = c.get(Calendar.MONTH) + 2 + p;date = m + (n >= 10 ? "" : "0") + n;}ApplicationMainDto applicationMainDto = new ApplicationMainDto();applicationMainDto.setTime(date);applicationMainDto.setTotal(0.0);list.add(applicationMainDto);}return list;}

业务层调用

返回结果:

{
"type":"success",
"data":[
{
"total":23.0,
"count":0.0,
"time":"202104"
},
{
"total":0.0,
"count":0.0,
"time":"202103"
},
{
"total":0.0,
"count":0.0,
"time":"202102"
},
{
"total":0.0,
"count":0.0,
"time":"202101"
},
{
"total":0.0,
"count":0.0,
"time":"202012"
},
{
"total":0.0,
"count":0.0,
"time":"202011"
},
{
"total":0.0,
"count":0.0,
"time":"202010"
},
{
"total":0.0,
"count":0.0,
"time":"202009"
},
{
"total":0.0,
"count":0.0,
"time":"202008"
},
{
"total":0.0,
"count":0.0,
"time":"202007"
},
{
"total":0.0,
"count":0.0,
"time":"202006"
},
{
"total":0.0,
"count":0.0,
"time":"202005"
}
],
"code":null,
"msg":null
}

近一月

SELECTdate_add( curdate(), INTERVAL ( cast( help_topic_id AS signed INTEGER ) - 30 ) DAY ) time,ifnull( am.count, 0 ) totalFROMmysql.help_topic hLEFT JOIN (SELECTdate_format( gmt_created, '%Y-%m-%d' ) time,count( 0 ) countFROMapplication_mainWHEREis_del = 1GROUP BYdate_format( gmt_created, '%Y-%m-%d' )) am ON date_add( curdate(), INTERVAL ( cast( h.help_topic_id AS signed INTEGER ) - 30 ) DAY ) = am.timeWHEREh.help_topic_id <= DAY (last_day(curdate()))ORDER BYh.help_topic_id

返回结果:

近一周

SELECTdate_add( curdate(), INTERVAL ( cast( help_topic_id AS signed INTEGER ) - 6 ) DAY ) time,ifnull( am.count, 0 ) totalFROMmysql.help_topic hLEFT JOIN (SELECTdate_format( gmt_created, '%Y-%m-%d' ) time,count( 0 ) countFROMapplication_mainWHEREis_del = 1GROUP BYdate_format( gmt_created, '%Y-%m-%d' )) am ON date_add( curdate(), INTERVAL ( cast( h.help_topic_id AS signed INTEGER ) - 6 ) DAY ) = am.timeWHEREh.help_topic_id <= 6ORDER BYh.help_topic_id

返回结果:

近一日

SELECTa.HOUR time,ifnull( b.count, 0 ) total
FROM(SELECT0 HOUR UNION ALLSELECT01 HOUR UNION ALLSELECT02 HOUR UNION ALLSELECT03 HOUR UNION ALLSELECT04 HOUR UNION ALLSELECT05 HOUR UNION ALLSELECT06 HOUR UNION ALLSELECT07 HOUR UNION ALLSELECT08 HOUR UNION ALLSELECT09 HOUR UNION ALLSELECT10 HOUR UNION ALLSELECT11 HOUR UNION ALLSELECT12 HOUR UNION ALLSELECT13 HOUR UNION ALLSELECT14 HOUR UNION ALLSELECT15 HOUR UNION ALLSELECT16 HOUR UNION ALLSELECT17 HOUR UNION ALLSELECT18 HOUR UNION ALLSELECT19 HOUR UNION ALLSELECT20 HOUR UNION ALLSELECT21 HOUR UNION ALLSELECT22 HOUR UNION ALLSELECT23 HOUR) aLEFT JOIN (SELECTdate_format( gmt_created, '%H' ) HOUR,count( 0 ) countFROMapplication_mainWHEREis_del = 1AND date_format( gmt_created, "%Y-%m-%d" ) = date_format( now(), "%Y-%m-%d" )GROUP BYdate_format( gmt_created, '%H' )) b ON a.HOUR = b.HOUR
ORDER BYtime

返回结果:

MYSQL查询近一年 近一月 近一周 今天数据 没有数据返回0 按时间有序返回数据相关推荐

  1. Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据

    --------------查"当天"的数据----------------- SELECT ew.orderid, ew.carid, ew.userid, ew.`status ...

  2. mysql 时间差_后端从mysql取值返回0时区时间数据的问题

    近日搞一个B/S项目,前端页面时间字段总是显示格林威冶时间,也就是0时区的时间,比北京时间差了8个小时.打开后台的数据库,在workbench中查询,结果显示的时间格式正常,为当前北京时间.该时间字段 ...

  3. oracle查询大于某个日期的数据,查看某天(或某个时间区间)的数据,请别用between ... and ......

    -- 最近经常看到有人在某段时间区间上喜欢用between ... and ... ,其实,可以直接地说:这种用法是错误的! -- 查看某一天的数据,或某一段时间内的数据,其实是一个左闭.右开的区间内 ...

  4. mysql 查询今天,昨天,本月,今年,本季度,上一年等的sql语句编写(全)

    -- 今天 SELECT [想要的字段] FROM [表名] WHERETO_DAYS([时间字段名]) =TO_DAYS(now()); -- 昨天 SELECT [想要的字段] FROM [表名] ...

  5. MySQL查询条件中的各种运算符/操作符说明

    文章目录 一.比较运算符 (一)正则表达式 (二)模糊匹配 LIKE (三)转义字符 二.单行比较运算符 (一)安全等号 <=> 1. 和 = 的相同点 2. 和 = 的不同点 (二)区间 ...

  6. Mysql 查询数据并按顺序添加序号

    建表并导入数据: CREATE TABLE `province` (`province_id` int(11) NOT NULL AUTO_INCREMENT,`province_name` varc ...

  7. mysql查询所有分类前三的数据

    设计思路 当mysql查询有很多分类时,可能只需要每种分类的前三或者前十的数据,不需要返回所有的结果,所以我们可以给不同种类的数据添加序号,然后通过序号来筛选结果 例:建一张工人工作质量表,用年份和质 ...

  8. MySql查询(各种操作)

    文章目录 MySql查询 一.SELECT 1.基础用法 2.limit限制 3.order排序 3.Distinct 去重 4.where过滤 1.基本操作 **2.where操作符:** **3. ...

  9. mysql查询父/子节点

    mysql查询父节点: SELECT t2.id, t2.parent_id FROM(SELECT @r AS _id,(SELECT @r := parent_id FROM department ...

  10. MySQL查询语句求出不同类型的sum()总和!

    MySQL查询语句求和 通常用SQL语句进行求和操作都会用到sum()聚合函数 有时需求是数据表有不同type的商品 进行求和求出每一种商品的重量 我们想到的可能是写三条SQL语句进行where ty ...

最新文章

  1. Ruby之Rspec的报错解决
  2. Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略
  3. matlab for循环太慢,Matlab中每个for循环迭代的速度降低
  4. 3D呈现transform-style(CSS3)
  5. 问大家一个没有什么技术水平的问题!
  6. 推荐系统专利:一种信息推荐方法、系统及存储介质和终端设备
  7. 终极算法:机器学习和人工智能如何重塑世界笔记
  8. C++控制输出对齐---setw()函数
  9. cms,crm名词解释
  10. 马哈鱼数据血缘分析工具
  11. android补间动画有哪几种,android三种动画详解(补间动画、帧动画、属性动画)...
  12. pyspark LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak
  13. MySQL数据库出现unknown error 1449错误原因及其解决办法
  14. WordPress建站教程,win10下运用WordPress搭建个人博客教程,WordPress安装部署教程
  15. 51Nod 1228 序列求和
  16. 如何设计一个可扩展的优惠券功能
  17. 目前巨型计算机应用最主要的领域是,A.10%-15%.
  18. 阿里云云服务器ECS介绍
  19. 程序人生之九:2012,回首这7年
  20. eggjs 怎么使用 egg-jwt 实现 token 解析?

热门文章

  1. vs2005打点不提示
  2. 微软为 Chrome 带来更流畅的页面滚动效果,来自 Edge
  3. jQuery 源码系列(十八)class 相关操作
  4. 多台服务之间共享Session
  5. node.js下mongoose简单操作实例
  6. Android-StepsView
  7. WPF自定义路由事件(二)
  8. Jquery中$与$.fn的区别
  9. 27.go list
  10. 13.文本文件和二进制文件的区别