php - 使用 MySQL Datetime 比较 PHP 中的时间

标签 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'");    

    }

这个查询有什么问题?

最佳答案

一切。

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

完成。

<小时/>

详细说明:

  • 当 MySQL 完全有能力进行正确的计算时,您正在使用 PHP
  • 您没有将字段名称括在反引号中,这是一个问题,因为 date是一个关键字。
  • 您一次删除一行,这可能会导致查询数量不受限制,而不是一次全部删除(例如使用 IN 列出要删除的 ID)

关于php - 使用 MySQL Datetime 比较 PHP 中的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290182/

相关文章:

php - 从 foreach 循环中剥离最后一个字符

php - 从多到多将多行分组为一行

mysql - 如何优化这个 MySQL 查询/结构?

php - 选择多对多关系中没有类别的记录

php - MySQL 和 PHP : UTF-8 with Cyrillic characters

php - 获取特定日期的 SQL 数据

java - 如何在java中返回选定的日期结果?

php - Ebay API ISO 8601 持续时间格式到时间戳

php - 在 Android 中发出 HTTP 请求的最标准/常见方法

php - 错误 : undefined property $load