これは、過去1か月のすべての行を取得するためのクエリです。
$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
orのような場合は、次の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 でバッククォートを使用してください。