version python : 3.5 version mysql : 5.6
python pymysql exécute l'instruction sql pour comparer l'heure. Elle peut être exécutée en douceur dans mysql, mais une erreur est signalée lors de l'exécution en python ; imprimante de présence, en fonction du numéro d'employé Filtrez ceux qui sont en retard et partent tôt
Filtrez ceux qui arrivent après 7h30 et avant 17h30 dans la base de données ;
Ce qui suit est la déclaration 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')<DATE_ADD(date_format(datatime,'%Y-%m-%d'),INTERVAL "17:30:00" HOUR_SECOND);
Résultat d'exécution, obtenez le résultat en douceur :
code 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')<DATE_ADD(date_format(datatime,'%%Y-%%m-%%d'),INTERVAL '17:30:00' HOUR_SECOND)"
cursor.execute(sql)
#提交
connect.commit()
for row in cursor.fetchall():
print(row)
print('迟到早退人数',cursor.rowcount)
Message d'erreur :
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
Essayez d'utiliser des instructions multilignes
Forfait
Après avoir lu les commentaires ci-dessus, voyez ceci : https://stackoverflow.com/que...
Lors de l'utilisation d'instructions MySQL en Python, il n'est pas nécessaire d'ajouter
%
来转义%
Le module MySQL de Python ajoutera des caractères d'échappement par défaut.