【发布时间】:2017-04-12 15:05:26
【问题描述】:
在我的 MySQL 中有一个名为 date 的列,类型是 timestamp。
在我的 PHP 脚本中使用它:
$stmt = $pdo->prepare('SELECT id, date FROM my_table ORDER BY DATE(date) ASC, TIME(date) DESC');
输出是:
2016-11-26 16:55:30
2016-11-26 16:53:08
2016-11-26 16:37:25
2016-11-26 16:32:29
2016-11-26 16:18:57
2016-11-28 19:37:37
但这是错误的顺序。我想把最新的日期放在最上面,包括日期和时间。
意思:
2016-11-28 19:37:37
2016-11-26 16:55:30
2016-11-26 16:53:08
2016-11-26 16:37:25
2016-11-26 16:32:29
2016-11-26 16:18:57
我做错了什么?
【问题讨论】:
-
不要按日期/时间分开。就做
ORDER BY `date` DESC -
正如其他人指出的那样,您可以对整个列进行排序。但是要特别指出您的问题,那是因为您有 DATE(date) ASC。 ASC 表示升序,因此您按日期升序但时间降序排序。将 ASC 更改为 DESC 也可以解决您的问题。
标签: php mysql sql date timestamp