我希望将MYSQL表中的空发送日期值设置为当前的日期和时间。因此,例如,ID为11077的订单在表中有一个空发货日期。我想把这个具体订单的发运日期改为今天的日期。表名为orders,列名为OrderID和ShippedDate。OrderID数据类型为int,ShippedDate数据类型为日期时间(yyyy:tt:tt)。我很感激你的帮助!谢谢。
我收到的错误消息是:
mysql.connector.errors.ProgrammingError: 1064 (42000):您的SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以便在第1行使用接近“14:38:12.234562”的正确语法,其中OrderID类似于11077
mycursor.execute("SELECT ShippedDate FROM orders WHERE OrderID LIKE {}".format(orderID))
data = mycursor.fetchone()
for result in data:
if result is None:
mycursor.execute("UPDATE orders SET ShippedDate={} WHERE OrderID LIKE {}".format(datetime.now(), orderID))
mydb.commit()发布于 2022-08-07 21:49:48
您的现有代码存在许多问题。我建议你采取这样的方法:
mycursor.execute("UPDATE orders SET ShippedDate=CURDATE() WHERE ShippedDate is NULL")我不知道这是用什么写的,但据我了解,您的代码的问题是:
mycursor.execute("SELECT ShippedDate FROM orders WHERE OrderID LIKE {}".format(orderID))
,
,
orderID是什么?它从未定义过的数字上使用LIKE
if result is None:
的情况下才会执行
mycursor.execute("UPDATE orders SET ShippedDate={} WHERE OrderID LIKE {}".format(datetime.now(), orderID))
请注意,当前的日期和时间永远不会出现在代码中任何地方
无论如何,继续努力学习吧!
https://stackoverflow.com/questions/73270196
复制相似问题