以下是获取过去一个月所有行的查询。
$time = time() - 9676800;
$q = $this->db->query("
select id
from ipAddress
where date > {$time}
");
但是如何调整此查询以获取过去一个月的所有行BESIDES?基本上我想最终删除1个月以上的所有行
答案 0 :(得分:0)
只要您计算“上个月/上个月”的方法符合您的要求,那就很简单了:
where date <= {$time}
答案 1 :(得分:0)
您可以使用date_format,date_sub函数来获取上个月的日期。 在这里找到答案: mysql last month date statement 和这里 MySQL Query to calculate the Previous Month
答案 2 :(得分:0)
你可以这样做
$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中使用反引号。