python调用mysql数据库sql语句过长有问题吗_python pymysql 执行比较时间的sql语句,在mysql中可以顺了执行,但是在python中执行为何报错?...

问 题

python版本:3.5 mysql 版本:5.6

python pymysql 执行比较时间的sql语句,在mysql中可以顺了执行,但是在python中执行报错;

数据库表为考勤打机中导出的考勤数据,根据工号筛选出迟到及早退人员;

在数据库中筛选出时间在7:30:00之后以及在17:30:00之前打卡的;

数据库表结构:

以下为sql语句

select * from kaoqinjilu WHERE gonghao = 6063 and date_format(datatime,'%Y-%m-%d %H:%i:%s')>DATE_ADD(date_format(datatime,'%Y-%m-%d'),INTERVAL "7:30:00" HOUR_SECOND)

and date_format(datatime,'%Y-%m-%d %H:%i:%s')

执行结果,顺利得到结果:

python代码:

import pymysql.cursors

#连接数据库

connect = pymysql.connect(host='127.0.0.1',port=3306, user='root', passwd='111111', db='test',charset='utf8',)

#获取游标

cursor = connect.cursor()

sql = "select * from kaoqinjilu WHERE gonghao = 6063 AND date_format(datatime,'%%Y-%%m-%%d %%H:%%i:%%s')>DATE_ADD(date_format(datatime,'%%Y-%%m-%%d'),INTERVAL '7:30:00' HOUR_SECOND)

and date_format(datatime,'%%Y-%%m-%%d %%H:%%i:%%s')

cursor.execute(sql)

#提交

connect.commit()

for row in cursor.fetchall():

print(row)

print('迟到早退人数',cursor.rowcount)

报错信息:

C:\Users\gsd\AppData\Local\Programs\Python\Python35\python.exe F:/100lainxiti/考勤查询.py

File "F:/100lainxiti/考勤查询.py", line 7

sql = "select * from kaoqinjilu WHERE gonghao = 6063 AND date_format(datatime,'%%Y-%%m-%%d %%H:%%i:%%s')>DATE_ADD(date_format(datatime,'%%Y-%%m-%%d'),INTERVAL '7:30:00' HOUR_SECOND)

^

SyntaxError: EOL while scanning string literal

Process finished with exit code 1

解决方案

多行语句试试用

""" ......

......

"""

进行包裹

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值