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

如何用变量中的日期删除SQLite数据库中对应datetime的记录

解决SQLite按日期删除记录的问题

你的问题出在直接用等于号匹配日期字符串——数据库里的datetime字段值包含时间部分(比如2022-11-10T12:34:56),而你的last_Date只有日期部分,完全匹配自然找不到记录。下面给两种可行的写法:

方法1:用LIKE模糊匹配

利用日期部分在字符串开头的特点,拼接通配符匹配所有该日期的记录:

cursor.execute("""
DELETE FROM alpaca_stock_prices_4H WHERE datetime LIKE ?
""", (last_Date + '%',))

注意:参数要写成(last_Date + '%',),末尾的逗号不能少,确保是元组类型。

方法2:用SQLite日期函数提取日期(更稳妥)

SQLite自带DATE()函数,可以从ISO格式的datetime字符串中提取纯日期部分,直接和你的last_Date比较:

cursor.execute("""
DELETE FROM alpaca_stock_prices_4H WHERE DATE(datetime) = ?
""", (last_Date,))

这种方法不受时间部分格式影响,匹配更准确,推荐使用。

另外提醒:执行删除后要调用connection.commit()提交事务,否则删除操作不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:10:40