使用MySQL和PHP进行错误的ORDER BY

时间:2016-11-28 19:27:38

标签: php mysql sql date timestamp

在我的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

我做错了什么?

2 个答案:

答案 0 :(得分:2)

为什么您不能在整个列值上使用order by而不是分别对日期部分和时间部分进行排序

ORDER BY `date` DESC

答案 1 :(得分:1)

SELECT id, date FROM my_table ORDER BY date DESC