python查询mysql并生成excel表

需求说明

开发不愿意单独为某个项目做后台

并且运营那边需要合并多个表的数据

因此找上了我。

要求每周执行一次。月初也执行一次

要查询2个mysql数据库多个表并生成excel表

我的想法

找开发要sql语句。同时要求说明查询结果如何填充excel表

把程序打成exe的。放在某个可以连接数据库的windows机器上。通过计划任务定期执行

同时安装一个nginx作为http文件服务器。再做个简单认证。让运营去打开下载即可

代码实现

python;gutter:true; import datetime,pymysql,time import xlwt</p> <p>mysql_host='172.16.203.1'</p> <h1>mysql_host='10.0.2.17'</h1> <p>mysql_port=13306</p> <h1>mysql_port=3306</h1> <p>mysql_db1='tzqweb' mysql_db2='password' #这里输入真实密码 mysql_user='system' mysql_pass='password' #这里输入真实密码</p> <h1>上一个月的第一天日期2018-09-01这种格式</h1> <p>if datetime.date.today().month==1: LastMonthFirstDay = datetime.date(datetime.date.today().year-1,datetime.date.today().month+11,1) else: LastMonthFirstDay = datetime.date(datetime.date.today().year,datetime.date.today().month-1,1)</p> <h1>上一个月的最后日期2018-09-01这种格式</h1> <p>LastMonthLastDay = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)</p> <h1>获取这个月第一天2018-09-01这种格式</h1> <p>ThisMonthFirst_day=datetime.date.today().replace(day=1)</p> <h1>获取今天2018-09-01这种格式</h1> <p>ThisMonthToday=datetime.date.today()</p> <h2>得到这个月的sql--1</h2> <p>print('sql----------------1,返回值为8列')</p> <h1>获取的值为8列个数字,第一个是日期,第2个是新用户访问,第3个是点击人数,第4个是点击次数,5是包月人数,6是包月失败,7老包月,8点播人数</h1> <p>SQL1='''select tab1.time1,ifnull(s4.zcrs,0) as zcrs ,ifnull(s1.djrs,0) as djrs ,ifnull(s1.djcs,0) as djl ,ifnull(s2.byrs,0) as byrs ,ifnull(s3.sbrs,0) as dgsbrs,ifnull(tab2.lbyfwrs,0) as lbyfwrs,ifnull(s5.dbrs,0) as dbrs from (SELECT CONCAT(DATE_FORMAT(curdate(),'%Y-%m-'),aa.stats_day) time1 FROM mydate aa WHERE CAST(aa.stats_day AS SIGNED)=CONCAT(s1.time1,' 00:00:00') group by s1.time1) tab2 on tab1.time1=tab2.time1 left join (select DATE_FORMAT(t.recordtime,'%Y-%m-%d') as time1,count(*) as djcs,count(distinct t.userid) as djrs from edu_userapp t where t.recordtime>=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and t.recordtime=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and t.ordertime=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and t.recordtime=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and t.recordtime=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and bl.starttime=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') ; '''</p> <h1>获取的值为1个数字,值为点播人数</h1> <p>SQL3='''select count(DISTINCT bl.userid) as dbrs from seewomq.edu_userlogs bl where bl.starttime>=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and bl.starttime=CONCAT(DATE_ADD(curdate(),interval -day(curdate())+1 day),' 00:00:00') and bl.starttime

Original: https://www.cnblogs.com/nmap/p/10474221.html
Author: nmap
Title: python查询mysql并生成excel表

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10827/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总