mysql - 删除时间戳早于 x 天的所有行

我想从我的数据库中的特定表中删除时间戳超过 180 天的所有行。

我试过这个:

DELETE FROM on_search WHERE search_date < DATE_SUB(NOW(), INTERVAL 180 DAY);

但这删除了所有行,而不仅仅是超过 6 个月的行。

我在 on_search 表中有一个名为 search_date 的列,其中包含该行的创建时间。

search_id   search_term    search_date 
660779      car games      1390052553 

最佳答案

DELETE FROM on_search 
WHERE search_date < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 180 DAY))

https://stackoverflow.com/questions/21206361/

相关文章:

mysql - 如何使用 MySQL GUI 工具使字段为 NULL?

mysql - 让 MySQL 用户创建数据库,但只允许访问他们自己的数据库

sql - MySQL为每一行自动存储日期时间

java - Hibernate JPA、MySQL 和 TinyInt(1) 用于 boolean

python - 如何在 Python 中使用列名检索 SQL 结果列值?

mysql - 如何从 windows 命令提示符连接到 mysql 命令行

mysql - 将 MySQL SELECT 中的日期格式化为 ISO 8601

mysql - 如何在 MySQL 中调度存储过程

mysql - 从 MYSQL 查询中计算列的平均值

mysql - 如何选择几个硬编码的 SQL 行?