在MYSQL中选择忽略A.M和P.M的时间

时间:2016-03-10 23:24:04

标签: mysql database sorting time

我有一个select语句选择时间,并按时间顺序排序,但它似乎忽略了A.M和P.M部分。我该如何解决这个问题?

SELECT DATE_FORMAT(max(time),'%h:%i:%s %p') AS mytimestr FROM currentChat WHERE date = '$date' ORDER BY mytimestr ASC

结果:

1:00 A.M
2:00 P.M
3.00 A.M
4.00 P.M

需要结果:

1:00 A.M
3.00 A.M
2:00 P.M
4.00 P.M

1 个答案:

答案 0 :(得分:1)

如果您的time列是MySQL TIME数据类型,因为我怀疑它来自您拨打DATE_FORMAT的方式,那么您不需要ORDER BY你的mytimestr表达式。您只需按time字段本身排序即可按时间顺序获取记录。

SELECT DATE_FORMAT(max(time),'%h:%i:%s %p') AS mytimestr
FROM currentChat
WHERE date = '$date'
ORDER BY max(time) ASC

我不确定你是否打算让MAX(...)没有GROUP BY - 这只会返回一行,使ORDER BY有点多余,但也许你只给了您查询的一部分。