echarts圖表統計----時間


最近想用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);
 

轉載於:https://www.cnblogs.com/AndrewYin/p/11265706.html

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM