Php 按大于今天的日期对SQL结果排序(d-M-Y)

Php 按大于今天的日期对SQL结果排序(d-M-Y),php,mysql,Php,Mysql,在我的sql查询中,我按时间顺序输出日期 我数据库中的日期以d-M-Y格式存储 我想做的是按照等于或大于今天的日期对结果进行排序,以便首先输出 在我的查询中,我的查询中有这种排序 ...From $db ORDER BY STR_TO_DATE(sortdate, '%d-%M-%Y') ASC 有谁能告诉我,如果我能在今天的日期做一个比较,因为每个记录都是从数据库输出的 这将给我今天的日期 $todaysdate = date("d-M-Y", time()); 但是,有谁能告诉我,我是否

在我的sql查询中,我按时间顺序输出日期

我数据库中的日期以d-M-Y格式存储

我想做的是按照等于或大于今天的日期对结果进行排序,以便首先输出

在我的查询中,我的查询中有这种排序

...From $db ORDER BY STR_TO_DATE(sortdate, '%d-%M-%Y') ASC
有谁能告诉我,如果我能在今天的日期做一个比较,因为每个记录都是从数据库输出的

这将给我今天的日期

$todaysdate = date("d-M-Y", time());
但是,有谁能告诉我,我是否可以将其构建到我的查询中

提前感谢。

结合当前日期检查mysql DATEDIFF==>

结合当前日期检查mysql DATEDIFF==>

您真的应该以日期时间格式存储日期。这将使我们更容易进行各种排序、比较和其他许多事情。例如,您可以使用mysql now函数只获取所需的结果

...From $db where sortDate>=now() ORDER BYsortdate ASC

您真的应该以日期时间格式存储日期。这将使我们更容易进行各种排序、比较和其他许多事情。例如,您可以使用mysql now函数只获取所需的结果

...From $db where sortDate>=now() ORDER BYsortdate ASC

您可以使用WHERE-sortdate>=$todaysdate

您可以使用WHERE-sortdate>=$todaysdate

我猜您将日期保存在VARCHAR列中。请不要这样做,当你想在约会中做这样的事情时,你会让事情变得非常复杂。我建议您将列转换为日期字段,然后只使用:

SELECT * FROM my_table WHERE my_date_field >= CURDATE()

如果您想以d-m-Y格式输出日期,您可以使用date_格式

我猜您将日期保存在VARCHAR列中。请不要这样做,当你想在约会中做这样的事情时,你会让事情变得非常复杂。我建议您将列转换为日期字段,然后只使用:

SELECT * FROM my_table WHERE my_date_field >= CURDATE()

如果要以d-m-Y格式输出日期,可以使用date_格式

假设sortdate是datetime字段,为了首先显示等于或大于今天的日期,可以使用UNION

SELECT * FROM my_table WHERE sortdate>= CURDATE()
UNION
SELECT * FROM my_table WHERE sortdate< CURDATE()

假设sortdate是datetime字段,为了首先显示等于或大于今天的日期,可以使用UNION

SELECT * FROM my_table WHERE sortdate>= CURDATE()
UNION
SELECT * FROM my_table WHERE sortdate< CURDATE()

只要把这个条件放在其中,比如date\u column>=curdate/$todaysdate


谢谢

只需将此条件置于like date\u column>=curdate/$todaysdate的位置

谢谢