如何选择> = 1天前的行?

时间:2019-02-09 03:12:52

标签: mysql sql date

在我禁止他聊天之前,一个用户最多可以获取5个报告,当该用户的行达到5个报告时,我在该行中存储date,并且我可以在一天后取消禁止他使用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 :(得分:3)

使用删除条件,例如

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

OR

WHERE timediff(now(), my_datetime_field) < '24:00:00'

答案 1 :(得分:0)

您可以尝试以下操作-使用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()