将日期和时间与 MySQL 中的当前时间进行比较
Posted
技术标签:
【中文标题】将日期和时间与 MySQL 中的当前时间进行比较【英文标题】:Compare date and time to current time in MySQL 【发布时间】:2021-10-03 02:49:58 【问题描述】:我正在使用 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 任何使用 php 或 MySQL 的解决方案都会有所帮助。
【问题讨论】:
***.com/help/minimal-reproducible-example 并考虑将日期和时间存储为单个实体 更新我通过从表中获取所有值然后在 php.ini 的帮助下过滤它们来解决问题。由于 DATE 以 d/m/Y 格式存储,因此我使用 Date("d/m/Y") 在 php 中获取了当前日期,并在 if 语句中简单地比较了它们并得到了我想要的结果。 【参考方案1】:你可以像这样得到cuttent_date()和current_time():
$sql = "SELECT * FROM p_appointment WHERE date >= current_date() AND time >= current_time() ORDER BY date,time ASC
如果您有很多记录 (>100),您也不应该从数据库中获取所有数据。使用 LIMIT 仅获取部分记录并对记录执行分页是一种很好的做法。
【讨论】:
以上是关于将日期和时间与 MySQL 中的当前时间进行比较的主要内容,如果未能解决你的问题,请参考以下文章
从firestore查询数据时,如何将保存的字符串格式的日期与当前日期进行比较?
Mysql - 如何将字符串中的日期与查询中的unix时间进行比较