python - SQLITE3 python根据字符串日期yyyy/mm/dd hh:mm:ss删除行
问题描述
我有一个像这样的大型 SQLITE3 数据库:
其中字段“date_”是格式如下的字符串 YYYY/MM/DD HH:MM:SS
我想删除 2020 年之前的所有行。我做了类似的事情,但似乎我需要将所有日期转换为 sqlite3 的整数。我有点迷失了如何做到这一点。这是我的想法:
def delete_rows_before_2020(con):
cursorObj = con.cursor() #create connection to the BDD
cursorObj.execute('DELETE FROM my_bdd WHERE date_ <= CAST(strftime('%s', '2020-01-01') AS integer')
con.commit()
这行不通。
解决方案
您对时间戳的描述与照片中的内容不符...
无论如何,您应该以正常'YYYY-MM-DD HH:MM:SS'
格式存储您的日期字符串。然后你就可以使用WHERE date_ <= '2020-01-01'
.
或者使用 Unix 时间将它们存储为整数以节省空间并进行更快的比较。
推荐阅读
- arcgis-js-api - ESRI JS API 正在剥离 href
- python - 在python中附加空的嵌套列表
- python - 有没有办法指定将日志打印到 python 输出的截止级别?
- c# - 只有assignment、call、increment、decrement、await和new对象表达式可以用作语句[c#]
- arrays - python:存储为数组中元素的数字的比较给出了不正确的结果
- django - django nginx上游在上传大数据时过早关闭连接
- python - 在 Bokeh 中链接缩放工具
- amazon-web-services - 在 Mac OS 上将 Tableau 连接到 Athena
- c# - c# automapper总是转换空对象
- c++ - OpenGL glDrawElements不渲染任何东西