Python-MySql.Connector更新语句不工作
我对MySQL.Connector的UPDATE语句有一些问题 显然,我的代码有时有效,有时无效,我不明白为什么。 我为一行做了一个测试函数,它与我的另一个主函数非常相似Python-MySql.Connector更新语句不工作,mysql,python-3.x,mysql-connector-python,Mysql,Python 3.x,Mysql Connector Python,我对MySQL.Connector的UPDATE语句有一些问题 显然,我的代码有时有效,有时无效,我不明白为什么。 我为一行做了一个测试函数,它与我的另一个主函数非常相似 import mysql.connector from datetime import datetime def connect(): return mysql.connector.connect(host="xxxxx.xxx", user="xxx", passwd="xxxxxx", db="xxx")
import mysql.connector
from datetime import datetime
def connect():
return mysql.connector.connect(host="xxxxx.xxx", user="xxx", passwd="xxxxxx", db="xxx")
def test():
mydb = connect()
mycursor = mydb.cursor()
sql = "SELECT MAX(value) FROM test"
mycursor.execute(sql)
date = datetime.now().strftime("%d-%m-%Y %H:%M:%S")
for x in mycursor.fetchall():
updateSql = "UPDATE test SET date=%s WHERE value=%s"
vals = (date, x[0])
mycursor.execute(updateSql, vals)
mydb.commit()
print(vals)
print(mycursor.rowcount)
test()
此代码似乎不起作用,因为打印的行计数值为0
。
我的VAL
显示正确:('12-01-2020 16:47:15','testValue')
但是,数据库上显示的是:'00-00-0000 00:00:00'
。
有没有办法解决这个问题 编辑:刚刚找到答案 我使用了错误的格式。
date=datetime.now().strftime(“%d-%m-%Y%H:%m:%S”)
未正确识别
mySql数据库中的DATETIME类型要求格式如下:
date=datetime.now().strftime(“%Y-%m-%d%H:%m:%S”)
年在第一位,月在第二位,日在第三位
如果未遵循此标准,则日期将转换为
0000:00:00:00:00
如果仅使用日期值而不是日期的字符串表示形式进行更新,会发生什么情况?因此,删除.strftime()
部分并执行以下操作:date=datetime.now()