2012-09-17 41 views
3

具有字段'date'(YYYY-MM-dd)和'time'(hh:mm am/pm)的表格,但时间有时可能为空。 有没有可能按日期和时间按这样的结构订购物品?按日期和时间排序的SQL订单

+3

你为此使用文本字段的任何原因? –

+0

您可以使用该字段名称的顺序,如果为空或空白,则使用用例条件。 [这个环节,可能的帮助(http://stackoverflow.com/questions/9021526/sql-how-can-i-order-null-and-empty-entries-to-the-front-in-an- orderby) – Mowgli

+0

“你为此使用文本字段的任何原因?”长话......真的不想再生它。 – ABTOMAT

回答

3

是你可以用逗号分隔的列名来实现这一目标:

ORDER BY date, time 

你需要妥善处理“空白”时间(即应将其之前或之后的非空白放置结果集):

ORDER BY date, time DESC 

UPDATE手柄上午和下午适当

为了实现这一点,你可以使用SUBSTRING_INDEX function

ORDER BY date, SUBSTRING_INDEX(time, " ", -1), SUBSTRING_INDEX(time, " ", 1) 
+0

你确定它会正确排序'上午11点'和'下午10点'吗? – ABTOMAT

+0

@ABTOMAT答复已更新 –

0

是的,你可以使用ORDER BY Date, Time和将由字段中的可用数据订购。空白值将在结果的最后一起排列。