首页 > 解决方案 > 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() 

这行不通。

标签: pythonsqlitedatetimesql-deletepython-datetime

解决方案


您对时间戳的描述与照片中的内容不符...

无论如何,您应该以正常'YYYY-MM-DD HH:MM:SS'格式存储您的日期字符串。然后你就可以使用WHERE date_ <= '2020-01-01'.

或者使用 Unix 时间将它们存储为整数以节省空间并进行更快的比较。


推荐阅读