博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python用pymysql调用myslql数据库查询部分
阅读量:2168 次
发布时间:2019-05-01

本文共 2921 字,大约阅读时间需要 9 分钟。

查询部分 单独记录一下 方便以后查找,

# 整表查询,返回所有数据    def mysql_query_table(self, table):        db, cursor = self.mysql_creat_connect()        sql = "SELECT * FROM {} ".format(table)        cursor.execute(sql)        res = []        for x in cursor.fetchall():            res.append(x)        self.mysql_close_connect(db, cursor)        # logging.info(res)        return res    # 输入sql语句查询,按类型返回数据    def mysql_query_sql(self, sql, date=[], resmodel='all', many=2):        db, cursor = self.mysql_creat_connect()        cursor.execute(sql, date)        if resmodel == 'all':            res = cursor.fetchall()        elif resmodel == 'one':            res = cursor.fetchone()        else:            res = cursor.fetchmany(many)        self.mysql_close_connect(db, cursor)        return res    # 输入输入指定时间段查询    def mysql_query_time(self, table, starttime, endtime, field):        db, cursor = self.mysql_creat_connect()        sql = """SELECT * FROM {0} WHERE {3} BETWEEN '{1}' AND '{2}' """.format(table, starttime, endtime, field)        cursor.execute(sql)        res = []        for x in cursor.fetchall():            res.append(x)        self.mysql_close_connect(db, cursor)        # logging.info(res)        return res    # 查询某天的数据    def mysql_query_time_day(self, table, day, field):        db, cursor = self.mysql_creat_connect()        sql = """SELECT * FROM {0} WHERE {1} BETWEEN '{2} 00:00:00' AND '{2} 23:59:59' """.format(table, field, day)        cursor.execute(sql)        res = []        for x in cursor.fetchall():            res.append(x)        self.mysql_close_connect(db, cursor)        # logging.info(res)        return res

简单的封装一下:

# 查询某天的数据def query_time_day(self, table, day, field='DTIME'):	res = self.mysql_query_time_day(table, day, field)	return res

查询一下

x = mysqlexample()y = x.query_time_day('atest_doubledate', '2018-12-5')for i in y:    pass    logging.info(i)
INFO:root:(16, datetime.datetime(2018, 12, 5, 13, 41, 58), 82.4066)INFO:root:(17, datetime.datetime(2018, 12, 5, 13, 59, 33), 595.532)INFO:root:(18, datetime.datetime(2018, 12, 5, 14, 0, 4), 913.284)INFO:root:(19, datetime.datetime(2018, 12, 5, 14, 18, 47), 968.804)INFO:root:(20, datetime.datetime(2018, 12, 5, 14, 22), 987.586)INFO:root:(21, datetime.datetime(2018, 12, 5, 16, 27, 25), 243.352)INFO:root:(40, datetime.datetime(2018, 12, 5, 17, 19, 4), 210.541)INFO:root:(37, datetime.datetime(2018, 12, 5, 17, 15, 21), 26.8079)

ok,完全没有问题。

···················································································································································································

查询某天的sql语句可以更改成以下这样 table 是表明 DTIME是字段 day是日期,dateddiff是两个日期之间相差几天。

#查看某天的数据sql = SELECT * FROM table WHERE ( datediff ( DTIME , day ) = 0 )# 查看进7天的数据,查看最近多少天都可以按照这个更改,改一下日期就好了。sql = "SELECT * FROM atest_doubledate WHERE  DATE_SUB(CURDATE(), INTERVAL 7 DAY) <=DTIME "

查询时 碰到了一个小坑,也可能是我没有注意, table 是不能用引号引起来的,如果引起来会报错1064,

转载地址:http://latzb.baihongyu.com/

你可能感兴趣的文章
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
几个简单的SQL例子
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>