2012-04-14 77 views
0

我正在使用VB和MySQL。我有一個名爲xTime的字段,數據類型是TIME。我試圖找到一種方法來訂購ASC或使其具有PM/AM。現在我的數據如下,我需要3:20和5:50,因爲那些應該是下午。有任何想法嗎?使用SQL按時間排序

62  4  3  03:20:00 
61  4  3  05:50:00 
56  1  1  07:40:00 

這裏是我的SQL語句:

SELECT  ReserveID, MembershipID, Player_Count, `Time`, CourseID, `Date` 
    FROM   reserve 
    WHERE  (CourseID = 1) AND (`Date` = CURDATE()) 
    ORDER BY `Time` 
+0

你應該可以按時間排序。請發佈您的查詢,它可能有助於找出爲什麼它沒有正確排序。 – 2012-04-14 02:23:36

+0

好吧,我已添加查詢。我知道這是在asc排序,但試圖找出如何格式化時間或數據類型,所以它也不是軍事時間。 – helloman 2012-04-14 02:32:31

+0

你怎麼可能知道'03:20:00'在'07:40:00'之後?什麼是突破點?實際上,「03:20:00」總是凌晨,在同一天,總是在同一天的「07:40:00」之前。 '15:20:00'是下午的時間。你必須處理沿線的某個值的轉換/重新格式化。 – 2012-04-14 03:40:15

回答

0

其實,你的代碼和數據似乎是罰款。您的代碼按時間遞增排序,您的結果按照他們應該的方式顯示。問題是,你以錯誤的方式解讀數據:

我需要的3:20和5:50是後因爲這些應該是下午

3:205:50必須總是在7:40之前,因爲那些都是AM次。 3:20 PM等於15:205:50 PM等於17:40

+0

有沒有辦法將AM PM字段插入數據庫?或者我應該如何更改數據,因爲我不想使用軍事時間來顯示它們。 – helloman 2012-04-14 03:22:00

+4

然後在顯示它們時使用[格式](http://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_date-format) – 2012-04-14 03:28:12