2012-12-16 82 views
5

我有一個包含日期時間字段類型的表,我要排序的選擇語法取決於它降,就像如下:訂購日期時間的MySQL

2012年12月12日1點44分二十秒

2012年12月11日1時44分四十秒

2012年12月10日1時四十分36秒

2012年12月9日12點28分一十九秒

2012-12- 09 12:19:21

2012年12月9日12點11分五十秒

2012年12月9日12時00分11秒

2012年12月9日11點59分26秒

2012年12月9日11時57分08秒

2012年12月9日11點55分21秒

回答

20
ORDER BY columnname DESC 

鉭大新!

+0

@Samer:它的工作原理實際上,但是如果你刪除'UNIX_TIMESTAMP'它會正常工作。在這種情況下,它不會改變 – zerkms

+1

我使用了這種語法,它能正常工作: order by UNIX_TIMESTAMP('my_column_name')desc – Samer

+7

而且正如我在這裏所說的'UNIX_TIMESTAMP'毫無意義。 'ORDER BY my_column_name DESC'就足夠了 – zerkms

9
ORDER BY UNIX_TIMESTAMP(columnname) DESC 

UNIX_TIMESTAMP是必要的,因爲MySQL測試它們作爲字符串(例如9:00出現16:00後)

0

在我的情況dtEvent字段是日期時間類型。 這是我發現的唯一的解決方案:

SELECT myTable.recordId, myTable.dtEvent 
FROM myTable 
WHERE myTable.dtEvent IS NOT NULL 
ORDER BY CAST(YEAR(myTable.dtEvent) AS UNSIGNED), 
    CAST(MONTH(myTable.dtEvent) AS UNSIGNED), 
    CAST(DAY(myTable.dtEvent) AS UNSIGNED) 
LIMIT 100;