Mysql按日期排序,但忽略年份
我有一个表,它有一个MysqlMysql按日期排序,但忽略年份,mysql,sql,Mysql,Sql,我有一个表,它有一个MysqlDATE字段类型 我正在搜索条目,需要在接下来的30天内首先对条目进行排序。但是,有些条目上的年份已经过期,因为它是重复数据 对于日期查找,我使用的是DAYOFYEAR,效果很好 问题是:我能先将以下内容按事件发生前的最少天数进行排序吗 select b.name, ue.event_title, ue.event_date from brains b join user_events ue on b.user_id=ue.user_id where b.user_
DATE
字段类型
我正在搜索条目,需要在接下来的30天内首先对条目进行排序。但是,有些条目上的年份已经过期,因为它是重复数据
对于日期查找,我使用的是DAYOFYEAR
,效果很好
问题是:我能先将以下内容按事件发生前的最少天数进行排序吗
select b.name, ue.event_title, ue.event_date from brains b
join user_events ue on b.user_id=ue.user_id
where b.user_id=63 and
MOD(DAYOFYEAR(ue.event_date) - DAYOFYEAR(CURDATE()) + 365, 365) <= 30
order by event_date desc
从b中选择b.name、ue.event\u title、ue.event\u date
在b.user\u id=ue.user\u id上加入用户事件ue
其中b.user_id=63和
MOD(dayof year(ue.event_date)-dayof year(CURDATE())+365,365)算出了:
回答
select b.name, ue.event_title, ue.event_date,
(DAYOFYEAR(ue.event_date) - DAYOFYEAR(CURDATE())) as days
from brains b
join user_events ue on b.user_id=ue.user_id
where b.user_id=63 and
MOD(DAYOFYEAR(ue.event_date) - DAYOFYEAR(CURDATE()) + 365, 365) <= 30
order by days asc
选择b.name、ue.event\u title、ue.event\u date、,
(DAYOFYEAR(ue.event_date)-DAYOFYEAR(CURDATE())作为天
来自大脑b
在b.user\u id=ue.user\u id上加入用户事件ue
其中b.user_id=63和
MOD(DAYOFYEAR(ue.event_date)–DAYOFYEAR(CURDATE())+365,365)这有什么关系?