Удаление строк от таблицы MySQL, где метка времени составляет более чем один старый день?

Я нашел тот же самый вопрос здесь.

Но это не работает на меня. Я изменил его немного, управлял им, и я не могу понять это. Я пытаюсь удалить строки, которые составляют более чем старый день. Вот мой код:

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?

11
задан Community 23 May 2017 в 12:01
поделиться

2 ответа

Вы можете вычесть интервал:

DELETE FROM logs WHERE time < now() - interval 1 day
26
ответ дан 3 December 2019 в 02:01
поделиться

Это был ответ IIRC для SQLite3. Вы используете MySQL, который не поддерживает этот синтаксис.

Вы хотите использовать функцию DATE_ADD () (пример ниже не тестировался, но должен работать):

DELETE FROM logs WHERE time < TIMESTAMPADD(DAY,-1,NOW());
9
ответ дан 3 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: