首页 > 解决方案 > Mysql 删除和时间戳

问题描述

我正在寻找有关 MySQL 的一些帮助,非常简单的问题,但确实让我的大脑崩溃了一段时间。

我有一个名为“日志”的表,它有“日期”的东西,即时间戳的 INT(11),因此,它使用实际的时间戳。

我要制作一个每分钟执行一个 SQL 命令的脚本,检查所有行,如果“日期”超过/等于 6 小时,我太累了,没有任何帮助。

我使用的一些命令不起作用。

DELETE FROM logs WHERE date < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 6 HOUR));
DELETE FROM logs WHERE date < NOW() - INTERVAL 6 HOUR;

不会帮助,所以,我在这里问你是否可以帮助我,谢谢。

标签: mysqldatetimestampdelete-row

解决方案


您的日期列必须是类型 TIMESTAMP而不是 INT 以便能够正确地相互比较时间戳,或者您可以编写:

DELETE FROM logs WHERE FROM_UNIXTIME(date) < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 6 HOUR));

推荐阅读