使用月份名称和年份排序

时间:2015-02-07 06:11:01

标签: mysql mysql-workbench

我有这样的表结构: -

       ID       Month              Year

       1      January               2015
       2      February              2015
       3      March                 2014
       4      April                 2014
       5      May                   2014
       6      June                  2014
       7      July                  2014
       8      August                2014
       9      September             2014
      10      October               2014
      11      November              2014
      12      December              2014
  

我想用旧年的月份来排序,如果没有进入,则首先是年份   当年的月份,否则想要使用当前年份进行排序   月,当年(如果当年存在月数)。

预期输出为: -

            Month              Year

           March                 2014
           April                 2014
           May                   2014
           June                  2014
           July                  2014
           August                2014
           September             2014
           October               2014
           November              2014
           December              2014
           January               2015
           February              2015

3 个答案:

答案 0 :(得分:1)

您可以使用STR_TO_DATE来获取可根据您的需求订购的值。像

这样的东西
SELECT M.*, 
       STR_TO_DATE(CONCAT(M.Month,' ',M.Year),'%M %Y') AS 'myorder'
  FROM yourtable M
ORDER BY myorder ASC;

应该做的。

答案 1 :(得分:0)

在查询中尝试此功能可能对您的情况有所帮助

Select STR_TO_DATE(CONCAT(Month,'',Year),'%M %Y') AS 'myorder' from tableName Order By Cutom ASC

答案 2 :(得分:-1)

选择月份,每年从TABLE_NAME订购年份DESC,月份ASC

认为这应该做的伎俩