2016-09-15 170 views
0

我試圖按每行的日期排序。MySQL按日期排序行

一排有2016-09-15 15:36,一個有2016-08-15 13:12我會如何訂購它們以便最高的一個在頂部?

他們的行被稱爲th_activity,我知道在一個正常的查詢中,你會做類似SELECT * FROM threads ORDER BY th_activity DESC但我相信我知道這個問題。我使用varchar作爲行的類型。如果這是我必須使用的,我不確定日期的長度/價值應該是多少。

如果有人可以解釋我將如何正確訂購,我會很感激。

+0

我不太明白爲什麼這是你的問題。類似ISO 8601的日期/時間的優點在於它可以按照字母順序排列規則並且仍然有意義......所以即使列是varchar,仍然應該對它進行排序。如果沒有,在日期之前可能會有空白字符 – cypherabe

回答

0

可能是你需要一個STR_TO_DATE轉換

select * from threads 
ORDER BY str_to_date(th_activity, '%Y-%m-%d %h:%i') DESC 
0

我會用一個數據類型

datetime 

並使用相同的選擇在這個問題寫道:

order by th_activity DESC 
4

如果你的約會對象是年 - 月 - 日小時:分鐘,你可以按字母順序沒有任何問題,所以應該ORDER BY th_activity DESC做工精細。