Я нашел тот же самый вопрос здесь.
Но это не работает на меня. Я изменил его немного, управлял им, и я не могу понять это. Я пытаюсь удалить строки, которые составляют более чем старый день. Вот мой код:
if (isset($_POST['prune'])) {
$sql = "DELETE FROM logs WHERE time < date('now', '-1 days')";
mysql_query($sql);
echo 'Logs older than one day removed.';
}
Довольно простой вопрос я предполагаю, но его прослушивание ада из меня. Я ценил бы любую справку.
В случае, если это имеет значение, столбец является a TIMESTAMP
ввести.
Править: По-видимому, я - идиот. Вопрос, с которым я связал Вас, касается SQLite3. Таким образом, теперь мой вопрос, как я могу сделать это в MySQL?
Вы можете вычесть интервал:
DELETE FROM logs WHERE time < now() - interval 1 day
Это был ответ IIRC для SQLite3. Вы используете MySQL, который не поддерживает этот синтаксис.
Вы хотите использовать функцию DATE_ADD () (пример ниже не тестировался, но должен работать):
DELETE FROM logs WHERE time < TIMESTAMPADD(DAY,-1,NOW());