0

これは、過去1か月のすべての行を取得するためのクエリです。

$time = time() - 9676800;

$q = $this->db->query("
    select id
    from ipAddress
    where date > {$time}
");

しかし、このクエリを調整して、先月のすべての行を取得するにはどうすればよいですか?基本的に、1か月以上前のすべての行を削除することになります

4

3 に答える 3

0

「先月/過去月」を計算するための方法論があなたを満足させる限り、それは簡単です:

where date <= {$time}

于 2013-02-28T03:15:03.470 に答える
0

date_format、date_sub 関数を使用して、先月の日付を取得できます。ここで答えを見つけてください: mysql last month date statement とここ MySQL Query to calculate the Previous Month

于 2013-02-28T03:17:15.067 に答える
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:38orのような場合は、次の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 でバッククォートを使用してください。

于 2013-02-28T03:18:35.613 に答える