-4

我将月份名称作为字符串存储在数据库中,如下所示

Apr-2013
May-2013
...

我怎样才能按月对表格进行排序?

任何帮助表示赞赏。

4

2 回答 2

3

您必须格式化日期才能对其进行排序:

select aDate from t
order by str_to_date(aDate,'%b-%Y')

但是,这是非常低效的。我建议您更新该字段并将其设置为日期字段或至少两个整数:一个用于月份,一个用于年份。然后,如果您需要获取月份的名称,您可以使用该monthname(date)函数。

于 2013-11-12T06:19:29.383 回答
3
SELECT
  *
FROM
  dates
ORDER BY
  STR_TO_DATE(date, '%b-%Y')

SQL小提琴

于 2013-11-12T06:20:01.963 回答