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

时间:2012-08-23 08:06:41

标签: php mysql

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

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

我想要做的是按照等于或大于今天的日期对结果进行排序,然后先输出。

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

...From $db ORDER BY STR_TO_DATE(sortdate, '%d-%M-%Y') ASC

有人可以告诉我,如果我可以在今天的日期进行比较,因为每条记录都是从数据库输出的吗?

这将给我今天的日期

$todaysdate = date("d-M-Y", time());

但有人能告诉我是否可以将其构建到我的查询中吗?

提前致谢。

6 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您确实应该以dateTime格式存储日期。这将使很多更容易做各种订单,比较和许多其他事情。例如,您可以使用mysql now()函数来获取所需的结果吗?

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

答案 2 :(得分:1)

我的猜测是你在VARCHAR列中保存了日期。请不要这样做,当你想用日期做事(比如这样)时,你会让自己变得非常复杂。我建议您将列转换为DATE字段,然后使用:

SELECT * FROM my_table WHERE my_date_field >= CURDATE()

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

您可以使用WHERE sortdate >= $todaysdate

答案 5 :(得分:0)

只需将此条件置于date_column&gt; = curdate()/ $ todaysdate

之类的地方

感谢