mysql - 在 where 子句中向 unix 时间戳添加天数?

标签 mysql

我需要删除表中事件列为 false 且过期日期距当前日期 30 天或更长时间的所有条目。但是如何将 30 天添加到 where CLAUSE 的时间戳中?我尝试了这个,但得到了格式错误的 SQL 异常

DELETE * FROM share
         WHERE active = false
         AND (expire + 30) > UNIX_TIMESTAMP();

我也无法让 timestampadd 工作。

最佳答案

 DELETE FROM share
 WHERE active = false
 AND from_unixtime(expire) + interval 30 day > curr_date();

或者因为 Unix 时间以秒为单位:

 DELETE FROM share
 WHERE active = false
 AND expire + (30*86400) > UNIX_TIMESTAMP();

关于mysql - 在 where 子句中向 unix 时间戳添加天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48398675/

相关文章:

mysql - 用户媒体的数据库设计

mysql - 我应该如何将redis帐户信息移动到mysql?

php - 将关系型与非关系型混合(MySQL 和 MongoDB)

mysql查询删除where子句中的空格

PHP PDO : Undefine variable

mySQL 慢速计算主键与子查询

mysql - SQL Count 返回太多行

mysql - 计算按用户分组的唯一天数

java - jdbc 中的未知数据库

mysql - 如何在特定条件下自连接表