sql - 如何使用基于日期列从数据库表中删除超过 30 天的记录
问题描述
这是我在下面使用的python代码。但它不起作用并且没有显示任何错误。
delquery = "DELETE FROM table1 WHERE date_column < date ('now', '-30 day')"
conn.execute(delquery)
我正在使用 SQLite 数据库。
解决方案
如果格式是yyyy/MM/dd
您必须将其更改为yyyy-MM-dd
,因为这是 SQLite 中日期的唯一有效可比较格式:
DELETE FROM table1 WHERE REPLACE(date_column, '/', '-') < date('now', '-30 day')
或者甚至更好地更新表格,因此格式正确,并且每次要比较日期时date_column
都不需要该函数:REPLACE()
UPDATE table1
SET date_column = REPLACE(date_column, '/', '-')
推荐阅读
- regex - 正则表达式获取字符串,直到 Perl 中的某个字符串
- google-analytics - 将 gtag 脚本添加到外部 JavaScript 文件
- ssl - 代理服务器可以强制使用什么 ssl/tls 版本?
- ios - DateFormatter 给出日期前一天
- parameters - .exe 以文件夹路径为参数
- expect - 期待更多匹配 cr/lf 的行
- postgresql - 将值插入到从暂存中引用自身的表中 - Postgreql
- arrays - 如何将字符串数组转换为配置单元中的json字符串?
- php - 服务器 PHP 不接受 POST 变量
- python-3.x - 你可以只使用 VideoIds 用 python 创建一个 Youtube 播放列表吗?