这是一个查询,用于获取过去一个月的所有行。
$time = time() - 9676800;
$q = $this->db->query("
select id
from ipAddress
where date > {$time}
");
但是我怎样才能调整这个查询来获取过去一个月的所有行呢?基本上我想最终删除超过 1 个月大的所有行
只要您计算“上/上个月”的方法让您满意,那么它很简单:
where date <= {$time}
您可以使用 date_format、date_sub 函数来获取上个月的日期。在这里找到答案: mysql last month date statement 和这里 MySQL Query to calculate the Previous Month
你可以这样做
$time = strtotime('-1 Month');
$q = $this->db->query("
select id
from ipAddress
where `date` <= {$time}
");
但如果date
是 TIMESTAMP、DATE 或 DATETIME 字符串,2013-02-27 22:16:38
或者2013-02-27
你需要类似的东西
$time = date('Y-m-d H:i:s', strtotime('-1 Month'));
$q = $this->db->query("
select id
from ipAddress
where `date` <= '{$time}'
");
或者纯粹在 SQL 中
select id
from ipAddress
where `date` <= DATE_SUB(NOW(), INTERVAL 1 MONTH)
如果我没记错的话,date
是一个保留的 mysql 单词,所以在你的 sql 中使用反引号。