php - 1 天后自动删除行不会使用 php

标签 php mysql

我正在尝试使用以下代码删除一天前的数据行。

mysqli_query($this->db,"DELETE FROM posts WHERE UNIX_TIMESTAMP(created)<=DATE_SUB(NOW(), INTERVAL 1 DAY)") or die(mysqli_error($this->db));

但它不是 1 天前每次都删除所有行。我在这里做错了什么?

enter image description here

最佳答案

created列显然已经以秒为单位,要比较您应该使用的日期 FROM_UNIXTIME(created)而不是 UNIX_TIMESTAMP(created)在 MySQL 查询中。参见,例如:https://www.w3resource.com/mysql/date-and-time-functions/mysql-from_unixtime-function.php并与 https://www.w3resource.com/mysql/date-and-time-functions/mysql-unix_timestamp-function.php 进行比较.

如果要删除一天前清除的所有行,则WHERE条件 <=DATE_SUB(NOW(), INTERVAL 1 DAY)条件还可以。但是,如果您只想删除 1 天前清除的行,同时保留 1 天前创建的行,则可以使用 =DATE_SUB(NOW(), INTERVAL 1 DAY)相反。

所有这些都假设被比较日期的时区设置为相同。

关于php - 1 天后自动删除行不会使用 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46752081/

相关文章:

php - 您应该将用户登录详细信息存储在与您的网站相同的数据库中吗?

php - 关于 php 和 ajax-jquery 的问题

php - PHP 中的密码验证和确认密码始终显示错误

当 docker 容器关闭时,MySQL 数据库消失了

MySQL 字符串位置和子串排序

phpActiveRecord 不正确的日期时间格式

javascript - 异步API和回调

php - laravel 5 中的两种登录表单

mysql - SQL 我的查询出了什么问题

mysql - 使用 spring-boot 和 bitronix JTA 管理器将 XA 数据源配置到 mysql 8 DB 失败并出现 SqlException XAERR_RMERR