2013-02-10 128 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;