我有一个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
答案 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
有点多余,但也许你只给了您查询的一部分。