删除大于time()的记录

时间:2011-02-17 13:29:26

标签: php mysql math timestamp

我正在尝试删除20分钟后过期的记录,该列包含时间戳time()+1200(向前20分钟)。

执行此查询时:

$sql = "DELETE FROM " . SESSIONS_TABLE . "
        WHERE session_expire >= " . time() . "
        AND session_open = 1";

所有未通过时间戳的记录仍然会被删除...它是怎么做到的?

2 个答案:

答案 0 :(得分:7)

您可能希望删除的记录而不是time()

答案 1 :(得分:2)

您的WHERE条件不正确。你需要使用..

WHERE session_expire <= " . time() . "

...否则,您将删除在提供的时间后设置为的会话。

此外,如果数据库服务器的时钟位于同一时区,您可以简单地使用MySQL NOW功能。

即:

WHERE session_expire <= NOW()