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

Compare date and time to current time in 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,' ',time), '%Y-%m-%d %H:%i:%s')) < UNIX_TIMESTAMP(now()) ORDER BY date DESC

日期存储格式为 28/07/2021,时间格式为 2:25 PM 使用 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 只获取部分记录并对记录进行分页。