Как выбрать строки, которые> = 1 день назад? - PullRequest
0 голосов
/ 09 февраля 2019

Пользователь может получить максимум 5 отчетов, прежде чем я забаню его на 1 день из чата, когда строка от этого пользователя достигнет 5 отчетов, я сохраняю date в строке, и я могу отменить бан через 1 день с помощьюsql data < DATE_SUB(NOW(), INTERVAL 1 DAY).

Но таким образом он не сможет быть «забаненным» из чата, если не войдет в свою учетную запись до 47:99 часов, потому что INTERVAL 1 DAY не будет работать.Так, как я могу сделать предложение WHERE, чтобы соответствовать строке, которая по крайней мере 1 день назад или> = 1 день назад?Это возможно?

$link_id = $_SESSION['linkN'];
$deletReport = $conn->prepare("DELETE FROM `report_public_chat` WHERE `link_id` = :link_id AND `data` < DATE_SUB(NOW(), INTERVAL 1 DAY)");
$deletReport->bindParam(":link_id", $link_id, PDO::PARAM_INT);
$deletReport->execute();

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Используйте условие удаления, например

WHERE date >= now() - INTERVAL 1 DAY;

ИЛИ

WHERE timediff(now(), my_datetime_field) < '24:00:00'
0 голосов
/ 09 февраля 2019

Вы можете попробовать ниже - используя DATE_SUB(NOW(), INTERVAL 24 hours)

DELETE FROM `report_public_chat` WHERE `link_id` = :link_id AND `data` >= DATE_SUB(NOW(), INTERVAL 24 hours) and `data`<NOW()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...