You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python删除SQL Server指定日期及之后行报错如何解决

问题原因与修复方案

错误原因

你直接将Python变量名min_date写在了SQL查询字符串中,数据库的SQL解析引擎无法识别Python侧的变量,只会把min_date当做FMK表的字段名处理,因此抛出了「无效列名」的报错。

修复方法

使用pyodbc的参数化查询传递变量值,不要直接把变量拼接到SQL字符串里:

  • SQL语句中用?作为参数占位符,代替变量的位置
  • 调用execute()方法时,第二个参数传入包含变量值的元组

修正后的代码片段

# 注意单个参数的元组末尾必须加逗号,否则会被识别为普通值而非元组,触发参数不匹配报错
cur.execute('DELETE FROM FMK WHERE To_Date >= ?', (min_date,))

新手操作提示

删除数据是不可逆操作,建议正式执行删除前先查询匹配的行数,确认数据范围正确后再执行删除,避免误删:

# 先统计待删除的行数,验证筛选条件是否正确
cur.execute('SELECT COUNT(*) FROM FMK WHERE To_Date >= ?', (min_date,))
del_count = cur.fetchone()[0]
print(f"待删除的行数为:{del_count},确认范围无误后再执行删除操作")

内容的提问来源于stack exchange,提问作者HPython_noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:54:03