问题描述
我正在使用 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 任何使用 PHP 或 MysqL 的解决方案都会有所帮助。
解决方法
你可以像这样得到 cuttent_date() 和 current_time() :
$sql = "SELECT * FROM p_appointment WHERE date >= current_date() AND time >= current_time() ORDER BY date,time ASC
此外,如果您有大量记录(>100),则不应从数据库中获取所有数据。使用 LIMIT 只获取部分记录并对记录进行分页是一种很好的做法。