2016-09-15 172 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做工精细。