【问题标题】:PHP/MySQL Sort By DatePHP/MySQL 按日期排序
【发布时间】:2026-01-11 15:50:01
【问题描述】:

我正在尝试根据最早的日期从我的数据库中提取记录。

MySQl 表如下所示:

状态、日期、上次、网址

1, 2010-12-30 17:59:54, 2011-01-03 06:26:04, site1.com

1, 2010-12-28 12:16:10, 2011-01-03, 06:25:24, site2.com

日期和最后一行是日期时间。

这是我尝试过的两种类型的查询:

mysql_query("SELECT * FROM links WHERE status=1 ORDER BY last DESC LIMIT 0,25");
mysql_query("SELECT * FROM links WHERE status=1 ORDER BY DATE(last) DESC LIMIT 0,25");

查询在大多数情况下都有效,但总是会遗漏一些最旧的记录...

有什么想法吗?

谢谢

【问题讨论】:

  • 好吧,你限制在 25 个结果,所以你只会看到最后 25 个。第一个查询就足够了,不需要在 last 上使用 DATE
  • 该表有 100 行。我只想要日期最旧的 25 个。

标签: php mysql datetime


【解决方案1】:

我会假设“最后一次”是指最后一次点击或更新,对吧?我还认为您想要升序(12/20、12/21),因为您首先想要最旧的日期。 “ORDER by last LIMIT 25”应该没问题,因为 ASC 是隐式的。

【讨论】:

  • 是的,这就是我想要的 100%。我会试试看。 :)
【解决方案2】:

date 和 last 的数据类型是什么?时间戳还是?

试试这个:

mysql_query("SELECT * FROM links WHERE status=1 ORDER BY UNIX_TIMESTAMP(last) DESC LIMIT 0,25"); 

【讨论】:

  • Date 和 Last 都是 DATETIME。