Mysql按日期排序但忽略年份

时间:2014-01-31 16:38:14

标签: mysql sql

我有一个具有Mysql 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 

order by event_date desc因为年份而出现问题

1 个答案:

答案 0 :(得分:1)

想出来:

<强>答案

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