将日期和时间与 MySQL 中的当前时间进行比较

问题描述

我正在使用 PHP 开发一个办公管理系统,我想创建两个约会数据表。一个将按降序显示以前的约会,另一个将按日期和时间的升序显示即将到来的约会。现在在我的 MysqL 数据库中,我将日期和时间作为不同的参数。现在我应该从数据库获取所有条目并使用 PHP 过滤并将它们显示在不同的数据表中,还是应该使用过滤的查询获取条目然后将它们显示在不同的数据表中。 我已经尝试过这些过滤的查询,但这些都不起作用:

即将到来的

$sql = "SELECT * FROM p_appointment WHERE UNIX_TIMESTAMP(STR_TO_DATE(CONCAT(date,' ',time),'%Y-%m-%d %H:%i:%s')) >= UNIX_TIMESTAMP(Now()) ORDER BY date ASC

上一期

$sql = "SELECT * FROM p_appointment WHERE UNIX_TIMESTAMP(STR_TO_DATE(CONCAT(date,'%Y-%m-%d %H:%i:%s')) < UNIX_TIMESTAMP(Now()) ORDER BY date DESC

日期以 28/07/2021 格式存储,时间为下午 2:25 任何使用 PHPMysqL解决方案都会有所帮助。

解决方法

你可以像这样得到 cuttent_date() 和 current_time() :

$sql = "SELECT * FROM p_appointment WHERE date >= current_date() AND time >= current_time() ORDER BY date,time ASC

此外,如果您有大量记录(>100),则不应从数据库中获取所有数据。使用 LIMIT 只获取部分记录并对记录进行分页是一种很好的做法。