我需要在我的数据库中获取信息。每一行都有一个格式化为2013年1月的日期。如何对它们进行排序,例如最新日期将首先给出?没有插入这些信息,这就是为什么它们需要先排序的原因。谢谢! :)
答案 0 :(得分:2)
日期格式是无关紧要的,只要您将日期保存在适当类型的列中,如TIMESTAMP,DATE等。如果您的日期保存在ie VARCHAR中,那么您的数据库将被破坏,您应首先修复列类型。 / p>
答案 1 :(得分:0)
您已将日期存储在varchar
中。所以使用STR_TO_DATE()
函数进行排序
SELECT * FROM table WHERE STR_TO_DATE(column, %M %Y) ORDER BY column DESC
答案 2 :(得分:0)
SELECT mydate
FROM mytable
ORDER BY RIGHT(mydate,4) DESC, //get the year
CASE LEFT(mydate,INSTR(mydate,' ')-1)
WHEN 'January' THEN 1
WHEN 'February' THEN 2
WHEN 'March' THEN 3
WHEN 'April' THEN 4
WHEN 'May' THEN 5
WHEN 'June' THEN 6
WHEN 'July' THEN 7
WHEN 'August' THEN 8
WHEN 'September' THEN 9
WHEN 'October' THEN 10
WHEN 'November' THEN 11
WHEN 'December' THEN 12
END DESC //get the month and turn in to number