来自PHP的MySQL日期比较


MySQL date comparison from PHP

非常感谢您的帮助。

我有一个包含日期时间字段的 mysql 数据库。在该字段中,我有一个特定的日期和时间,例如:

2013-10-03 22:28

然后我有一个 PHP 脚本,它从 $_GET 命令中获取特定的日期和时间,分别值:年、月、日、小时、分钟。

从这个 GET 我创建了一个日期,如下所示:

$datum = $year."-".$month."-".$day." ".$hour.":".$minute.":".$seconds;
$date = date('Y-m-d H:i',strtotime($datum));

我现在需要做的是以某种方式将我创建的这个新日期与数据库中的最后一个日期值(最新的(进行比较。关键是,在我比较之后,我想检查数据库中的最后一个值是否早于 5 分钟,然后才执行特定操作(插入新行(,如果数据库中的最后一个日期比 5 分钟晚,什么都不做。

使用"从 tblname 中选择 max(datetime_field("获取日期时间字段的最新值。

$now = new DateTime();
$dateFromDB = new DateTime($someValueFromYourDataBase);
// subtract 5 minutes from now and compare with the stored timestamp
if ($now->sub(new DateInterval('PT5i') > $dateFromDB) {
    // database timestamp is older - do something
}

你可以像这样使用SQL:

select count(*) from `table` where `datefield` >= '$date'

$date可以像

 $date = date('Y-m-d H:i', strtotime($datum) - 5*60);

5*60 - 5分钟

出于性能原因,我建议您将索引添加到datefield并更改选择,例如:

select `datefield` from `table` where `datefield` >= '$date' limit 1