Python pymysql führt die SQL-Anweisung aus, die die Zeit vergleicht. Sie kann in MySQL reibungslos ausgeführt werden, aber warum wird bei der Ausführung in Python ein Fehler gemeldet?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-07-04 13:43:45
0
2
1513

Python-Version: 3.5 MySQL-Version: 5.6
Python PyMySQL führt die SQL-Anweisung aus und vergleicht die Zeit. Sie kann in MySQL reibungslos ausgeführt werden, bei der Ausführung in Python wird jedoch ein Fehler gemeldet.
Die Datenbanktabelle enthält die vom Anwesenheitsdrucker exportierten Anwesenheitsdaten . Gemäß der Mitarbeiternummer. Überprüfen Sie diejenigen, die zu spät kommen und früher gehen.
Überprüfen Sie diejenigen, die nach 7:30:00 Uhr und vor 17:30:00 Uhr eintreffen


Datenbanktabellenstruktur:


Das Folgende ist die SQL-Anweisung

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);

Ausführungsergebnis, erhalten Sie das Ergebnis reibungslos:


Python-Code:

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)

Fehlermeldung:

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

Antworte allen(2)
ringa_lee

多行语句试试用

""" ...... 
    ...... 
"""

进行包裹

三叔

看了楼上的评论,参见这个:https://stackoverflow.com/que...

Python里使用MySQL语句,不需要添加%来转义%,Python的MySQL模块会默认添加转义字符。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage