使用MySQL日期时间在PHP中比较时间

时间:2012-04-24 00:28:55

标签: php mysql datetime

我的活动日志存储在我的mysql数据库中,每个日志都有一个注册的日期时间。我正在尝试编写一个简短的PHP脚本来删除超过60天的所有日志。我在尝试比较日期时间格式的时间时遇到了麻烦。

这就是我所拥有的:

$sixty_days_past = strtotime("-60 days");

$earliest_time = date("Y-m-d H:i:s", $sixty_days_past);

$logs_result = mysql_query("SELECT id FROM df_logs WHERE date < '$earliest_time'");

    while($logs_row = mysql_fetch_array($logs_result)) { 

        $oldentry = $logs_row['id'];

        mysql_query("DELETE FROM df_logs WHERE id='$oldentry'");    

    }

此查询有什么问题?

1 个答案:

答案 0 :(得分:1)

一切。

DELETE FROM `df_logs` WHERE `date` < DATE_ADD(NOW(),INTERVAL -60 DAY)

完成。


详细说明:

  • 当MySQL完全能够进行正确的计算时,您正在使用PHP
  • 您没有在反引号中包含字段名称,这是一个问题,因为date是一个关键字。
  • 您正在一次删除一行,这会导致可能无法绑定的查询数,而不是一次删除所有查询(例如使用IN列出要删除的ID)