在php / sql中按年和月排序日期


Sorting dates by year then month in php / sql

我的MySQL数据库是为我的唱片店。

我有一个名为records的表,里面有700条记录。

我的字段是artist, title, release_date等

release_date为varchar格式,输入并存储为mm/yyyy

。, 01/2003 = Jan 2003

。, zz/1997 = 1997年期间。有些记录没有一个月。

我希望能够排序,在我的结果中以年和月的顺序显示记录。例如,我可以向访问者展示前10个最近记录的列表。如果一条记录以zz开头,那么它将在该年份的列表中排在最后。

排序结果示例如下:

11/2001

06/2001

zz/200109/2000

01/2000

zz/2000

在MySQL中,您可以这样做:

order by right(release_date, 4) desc,
         left(release_date, 2) + 0 desc;

第二个键上的音符。这将月份转换为数字。值zz将被转换为0,因为没有前导数字。