python pymysql exécute l'instruction SQL qui compare le temps. Elle peut être exécutée en douceur dans MySQL, mais pourquoi signale-t-elle une erreur lorsqu'elle est exécutée en python ?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-07-04 13:43:45
0
2
1506

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 ;

Structure des tables de 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
曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(2)
ringa_lee

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal