MYSQL中从当月开始按日期订购

MYSQL中从当月开始按日期订购,mysql,Mysql,我在mysql表中有一个日期类型列。我需要订购从当前月份开始的日期,与年份无关 tblEvent event_date __________ 2016-01-07 2016-01-13 2016-05-16 2016-05-22 2016-05-30 2018-06-21 2016-06-23 2016-07-14 2018-08-16 2016-10-20 1990-12-09 2016-12-15 因此,由于当月为6月,所需的输出应为: event_date __________ 2018

我在mysql表中有一个日期类型列。我需要订购从当前月份开始的日期,与年份无关

tblEvent

event_date
__________
2016-01-07
2016-01-13
2016-05-16
2016-05-22
2016-05-30
2018-06-21
2016-06-23
2016-07-14
2018-08-16
2016-10-20
1990-12-09
2016-12-15
因此,由于当月为6月,所需的输出应为:

event_date
__________
2018-06-21
2016-06-23
2016-07-14
2018-08-16
2016-10-20
1990-12-09
2016-12-15
2016-01-07
2016-01-13
2016-05-16
2016-05-22
2016-05-30
  • 订单必须从当月开始 月
  • 例如,如果当前月份为Nov,则订单必须为 11月、12月、1月、2月、3月、10月
  • 此外,各日期必须符合asc顺序
  • 订单必须与年份无关(即,无论是哪一年 在日期中)

  • 我只是尝试下面的查询,获取所有记录,从当前月份开始按描述顺序。比如:-第6、5、4、3、2、1个月

    SELECT *
    FROM `schedules`
    WHERE date_format( `ScheduleDate` , "%m" ) <= date_format( NOW( ) , "%m" )
    ORDER BY `ScheduleDate` DESC
    LIMIT 0 , 30;
    
    选择*
    从`时间表`
    
    其中date_格式(`ScheduleDate`,“%m”)我只是尝试下面的查询,获取所有记录,以desc顺序从当前月份开始。比如:-第6、5、4、3、2、1个月

    SELECT *
    FROM `schedules`
    WHERE date_format( `ScheduleDate` , "%m" ) <= date_format( NOW( ) , "%m" )
    ORDER BY `ScheduleDate` DESC
    LIMIT 0 , 30;
    
    选择*
    从`时间表`
    其中日期格式(`ScheduleDate`,“%m”)
    选择事件日期
    来自tblEvent
    订购人
    如果(月(事件日期)<月(现在()),月(事件日期)+12,月(事件日期)),
    日(活动日)
    
    信息:

    选择事件日期
    来自tblEvent
    订购人
    如果(月(事件日期)<月(现在()),月(事件日期)+12,月(事件日期)),
    日(活动日)
    
    信息:


    如果我正确理解您的问题,解决方案可以是这样的:

    select
      event_date
    from
      tblevent
    order by
      (12+month(event_date)-month(current_date)) mod 12,
      day(event_date)
    

    此查询将对从当前月份开始的所有行进行排序,按不考虑年份的月份和日期排序。请看一把工作小提琴。

    如果我正确理解了你的问题,解答可以是这样的:

    select
      event_date
    from
      tblevent
    order by
      (12+month(event_date)-month(current_date)) mod 12,
      day(event_date)
    

    此查询将对从当前月份开始的所有行进行排序,按不考虑年份的月份和日期排序。请查看一个正在工作的小提琴。

    您目前尝试了什么查询?抱歉@Deepak,但他们正在筛选当前月份的记录,只是我需要列出从当前月份开始的所有月份。请参考这个问题。到目前为止您尝试了什么查询?抱歉@Deepak,但是他们正在过滤当月的记录,只是我需要列出从当前开始的所有月份。请回答这个问题。