【SQL】使用UPDATE修改表字段的时候,遇到1054 或者1064的问题怎么办?

我在使用python连接sql修改表格的时间字段的时候,遇到这样一个问题:

ProgrammingError: (pymysql.err.ProgrammingError) (1064 , "You have an

error in your SQL syntax; check the manual that corresponds to your

MariaDB server version for the right syntax to use near

'14:41:32.713604 WHERE table_id ='1'' at line 1")

[SQL: UPDATE jd_shop_comparison1_new SET create_time =2025-07-09 14:41:32.713604

WHERE table_id ='1' ] (Background on this error at:

https://sqlalche.me/e/14/f405)

原代码:

python 复制代码
UPDATE_SQL = f"UPDATE table_name SET create_time ={create_time} WHERE table_id ='{table_id}' " #修改时间
engine.execute(UPDATE_SQL)

这个错误是由于 SQL 语句中的日期时间值没有正确使用引号引起的。

在我的 UPDATE 语句中,日期时间值 create_time 没有被引号包围,导致 MariaDB 无法正确解析这个值。

解决方法:

使用字符串引号包围括号里的字符,包括日期、时间、文本等

例如:

c 复制代码
UPDATE_SQL = f"UPDATE jd_shop_comparison1_new SET create_time = '{create_time}' WHERE table_id ='{table_id}' " #修改时间
engine.execute(UPDATE_SQL)

最终问题就解决了!

详细的错误图:

相关推荐
知行合一。。。6 小时前
RAG--03--Milvus基本用法
数据库·oracle·milvus
TDengine (老段)7 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
天空之城--7 小时前
Android Koin 完全指南:从原理到实践
android
上学的小垃圾8 小时前
01-数据库系统概述
数据库
zhangphil8 小时前
Android main thread主线程Choreographer doFrame发生FullSuspendCheck
android
二进制漫游记8 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
2501_928996228 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
泡干脆面就番茄11 小时前
MySQL_子查询_分页查询与联合查询详解
数据库·mysql
devpotato12 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
天若有情67312 小时前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql