最近想用Echart做数据统计的图形显示,数据来源是MySQL数据库,自然需要根据不同的搜索条件筛选出表中的数据,用比较多的就是时间的参数吧!

常用的mysql时间的条件进行检索的SQL语句:

数据表名:tableName 字段名:myDate 

最近7天的,
SELECT * FROM tableName where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(myDate); 最近一个月的
SELECT * FROM tableName where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(myDate); 最近1年的
SELECT * FROM tableName where DATE_SUB(CURDATE(), INTERVAL 1 YEAR) <= date(myDate); 本周的 (是从周日开始)
SELECT * FROM tableName where YEARWEEK(DATE_FORMAT(myDate,'%Y-%m-%d')) = YEARWEEK(now()); 上周的
SELECT * FROM tableName where YEARWEEK(DATE_FORMAT(myDate,'%Y-%m-%d')) = YEARWEEK(now())-1; 本月的
SELECT * FROM tableName where date_format(myDate,'%Y-%m')=date_format(now(),'%Y-%m') 上个月的
SELECT * FROM tableName where date_format(myDate,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m'); 距离现在6个月的数据
SELECT * FROM tableName where myDate between date_sub(now(),interval 6 month) and now(); 今年的数据,按月分组
SELECT month(fly_timeStart) as month,count(*) FROM flightinfo.tab_flight_info where year(fly_timeStart)=2019 group by month(fly_timeStart); 获取当月第一天
select DATE_ADD(CURDATE(),INTERVAL-DAY(CURDATE())+1 day); 获取上月最后一天
select DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())+0 day);

我想做的是统计最近一年,不包括当月的数据,按月统计;以及当月的数据,按天统计。

开始的语句是这样的,但是这是按当前日期往前推,我想要从当月第一天往前推,即不包括当月的数据。

最近1年的数据,按月分组
SELECT plane_type, year(fly_timeStart) as year,month(fly_timeStart) as month,count(*) as count
FROM tab_flight_info where DATE_SUB(curdate(), INTERVAL 1 YEAR) <= date(fly_timeStart) AND plane_type='机型1'
group by year(fly_timeStart),month(fly_timeStart);

于是改成如下语句,curdate() 改成 DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())+0 day

最近1年的数据,按月分组
SELECT plane_type, year(fly_timeStart) as year,month(fly_timeStart) as month,count(*) as count FROM tab_flight_info where
DATE_SUB(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())+0 day), INTERVAL 1 YEAR) <= date(fly_timeStart) AND plane_type='机型1'
group by year(fly_timeStart),month(fly_timeStart);

然后是按月统计:

最近一个月的数据,按天分组
SELECT month(fly_timeStart),day(fly_timeStart),count(*) FROM flightinfo.tab_flight_info where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(fly_timeStart)
group by month(fly_timeStart),day(fly_timeStart); 获取当月数据
SELECT * from tab_flight_info where DATE_FORMAT(fly_timeStart,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m');
获取当月数据
SELECT month(fly_timeStart) as month,day(fly_timeStart) as day,count(*) as count from tab_flight_info
where DATE_FORMAT(fly_timeStart,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') AND plane_type='机型1' group by day(fly_timeStart);

嗯,先到这儿,下篇介绍下,如何在Django框架中使用Echart的前后端代码。待续!

Django框架中使用Echart进行统计的SQL语句的更多相关文章

  1. Spring 中jdbcTemplate 实现执行多条sql语句

    说一下Spring框架中使用jdbcTemplate实现多条sql语句的执行: 很多情况下我们需要处理一件事情的时候需要对多个表执行多个sql语句,比如淘宝下单时,我们确认付款时要对自己银行账户的表里 ...

  2. Django框架中的Context使用

    Django框架中的Context使用 2017年11月09日 20:01:09 aweilark 阅读数:1113   转载自:http://www.aichengxu.com/python/606 ...

  3. 分布式队列celery 异步----Django框架中的使用

    仅仅是个人学习的过程,发现有问题欢迎留言 一.celery 介绍 celery是一种功能完备的即插即用的任务对列 celery适用异步处理问题,比如上传邮件.上传文件.图像处理等比较耗时的事情 异步执 ...

  4. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  5. Python的Django框架中的Cookie相关处理

    Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...

  6. Python的Django框架中的Context使用

    Python的Django框架中的Context使用 近期整理些Python方面的知识,一旦你创建一个 Template 对象,你能够用 context 来传递数据给它. 一个context是一系列变 ...

  7. Python中的Django框架中prefetch_related()函数对数据库查询的优化

    实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  8. Python的Django框架中的URL配置与松耦合

    Python的Django框架中的URL配置与松耦合 用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比 ...

  9. Django框架中logging的使用

    Django框架中logging的使用 日志是我们在项目开发中必不可少的一个环节,Python中内置的logging已经足够优秀到可以直接在项目中使用. 本文介绍了如何在DJango项目中配置日志. ...

随机推荐

  1. jQuery_复制操作

    复制操作代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  2. flink⼿手动维护kafka偏移量量

    flink对接kafka,官方模式方式是自动维护偏移量 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 从获取了了数据,但是在执⾏行行 ...

  3. sklearn.model_selection Part 1: Splitter Classes

    1. GroupKFold(_BaseKFold) 主要参数: n_splits : int, default=3 在GroupKFold.split(X[, y, groups])中会调用下面的方法 ...

  4. Java并发编程的艺术笔记(七)——CountDownLatch、CyclicBarrier详解

    一.等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作,像加强版的join.(t.join()是等待t线程完成) 例: (1)开启多个线程 ...

  5. Redis Cluster Cache with SpringBoot

    前提: 根据  https://www.cnblogs.com/luffystory/p/12081074.html 创建好Redis集群 <project xmlns="http:/ ...

  6. WebView的基础用法

    新建一个WebView项目,然后修改activity_main.xml布局文件中的代码,如下所示: <LinearLayout xmlns:android="http://schema ...

  7. RocketMQ存储系统概要设计和源码解读

    普遍消息存储技术的选型 分布式KV存储 NewSQL存储:TiDB 文件系统:RocketMQ,kafka,RabbitMQ RocketMQ:所有的message存储在一个log里,不区分topic ...

  8. 2018-2019-2 网络对抗技术 20165232 Exp7 网络欺诈防范

    2018-2019-2 网络对抗技术 20165232 Exp7 网络欺诈防范 原理与实践说明 1.实践目标 理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 2.实践内容概述 简单应 ...

  9. jquery 使用on方法给元素绑定事件

    on方法在1.7版本中开始出现的,现在已经优先考虑on,并不是bind方法了. on( events [,selector] [,data] ,handler) event:为事件类型,可以有多个事件 ...

  10. golang channel关闭后,是否可以读取剩余的数据

    golang channel关闭后,其中剩余的数据,是可以继续读取的. 请看下面的测试例子. 创建一个带有缓冲的channel,向channel中发送数据,然后关闭channel,最后,从channe ...