Удаление строк из таблицы 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.';
}
довольно простой вопрос, я полагаю, но его прослушивание чертовски из меня. Я был бы признателен за любую помощь.
в случае, если это имеет значение, столбец TIMESTAMP
тип.
EDIT: Очевидно, я идиот. Вопрос, с которым я связал вас, относится к SQLite3. Итак, теперь мой вопрос: как я могу это сделать в MySQL?
3 ответов
этот ответ был IIRC для SQLite3. Вы используете MySQL, который не поддерживает этот синтаксис.
вы хотите использовать DATE_ADD ()
в моем случае, только
timestampadd
в положительном направлении работает при запуске через АСЦ заказать календарную дату:
if (urldecode ($aUrl['Select']) == '>')
$this-> db-> where ('konzertdatum >', 'TIMESTAMPADD(DAY, 1, "'. $id . '") ', false) ;
else
$this-> db-> where ('konzertdatum < ', 'TIMESTAMPADD(DAY, -1, "'. $id . '") ', false) ;
в отрицательном направлении (-1)
метка времени возвращается к самой первой записи. Я также пытался не использовать CodeIgniter, но то же самое следствие.
подводя итоги +1
в качестве параметра для timestampadd работ, -1
работает для второго самого низкого входа (затем возвращается к первому. Однако он не Я делаю шаг в сторону от первого свидания.