SQLITE3 python根据字符串日期yyyy / mm / dd hh:mm:ss删除行

时间:2020-06-06 22:11:09

标签: python sqlite datetime sql-delete python-datetime

我有一个像这样的大型SQLITE3数据库:

enter image description here

“ 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() 

这不起作用。

1 个答案:

答案 0 :(得分:0)

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

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

或者使用Unix时间将它们存储为整数,以节省空间并加快比较速度。