2013-02-10 189 views
3

我有这样的一个表:MySQL的日期时间字段查询排序时:分

id date_time 
1 2/11/2013 7:05 
2 2/11/2013 7:00 
3 2/12/2013 7:00 
4 2/14/2013 7:00 
5 2/16/2013 7:00 
6 2/17/2013 7:00 
7 2/12/2013 7:05 
8 2/14/2013 7:05 
9 2/15/2013 7:05 
10 2/16/2013 7:05 
11 2/17/2013 7:05 
12 2/13/2013 7:00 
13 2/15/2013 7:00 
14 2/13/2013 7:05 

我需要它排序按小时:分钟,比按日期排序,所以我得到这样的输出:

2/11/2013 7:00 
2/12/2013 7:00 
2/13/2013 7:00 
2/14/2013 7:00 
2/15/2013 7:00 
2/16/2013 7:00 
2/17/2013 7:00 
2/11/2013 7:05 
2/12/2013 7:05 
2/13/2013 7:05 
2/14/2013 7:05 
2/15/2013 7:05 
2/16/2013 7:05 
2/17/2013 7:05 

有没有一种方法可以直接用MySQL对输出进行排序呢?我知道一旦得到查询结果就可以通过PHP来完成,但只是想知道MySQL是否可以做到这样的事情?

我想这样的查询:

SELECT * FROM my_table WHERE (date_time BETWEEN '$date_check_low' AND '$date_check_high') ORDER BY hour(date_time) ASC 

,但它会产生怪异的结果...

回答

2
ORDER BY HOUR(date_time), MINUTE(date_time), date_time 

ORDER BY TIME(date_time), date_time 
0

试试这个:

SELECT * 
FROM my_table 
WHERE (date_time BETWEEN '$date_check_low' AND '$date_check_high') 
ORDER BY time(date_time), 
     date_time; 
相关问题