2012-04-14 66 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