首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL语法中的错误:如何用MySQL Python中的datetime值更新空记录

SQL语法中的错误:如何用MySQL Python中的datetime值更新空记录
EN

Stack Overflow用户
提问于 2022-08-07 18:52:13
回答 1查看 41关注 0票数 0

我希望将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

代码语言:javascript
运行
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2022-08-07 21:49:48

您的现有代码存在许多问题。我建议你采取这样的方法:

代码语言:javascript
运行
复制
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))

  • 看起来你在把ShippedDate设置为有序的日期表示,这对我来说是没有意义的。

请注意,当前的日期和时间永远不会出现在代码中任何地方

无论如何,继续努力学习吧!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73270196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档