我正试图在数据库中出现“用户即将到来的生日”。
我能够将用户即将到来的生日罚款到12个月(12月)。
如果我需要找到明年即将到来的生日怎么办。
我的查询:
SELECT c.F_CONTACT_ID,
c.F_CONTACT_NAME,
c.F_CONTACT_FNAME,
DATE_FORMAT(c.F_DOB, '%d/%m') F_DOB
FROM t_contact c
WHERE DATE_FORMAT(F_DOB, '%m') >= '08'
GROUP BY c.F_CONTACT_ID
ORDER BY c.F_DOB ASC LIMIT 0 ,
10
如何找到“1月”出生的用户即将到来的生日,因为
DATE_FORMAT(F_DOB,'%m')> ='08'
可以检查到12个月。
有人可以帮助我吗?
答案 0 :(得分:1)
我不知道为什么你有group by
。我会使用order by
和limit
:
SELECT c.F_CONTACT_ID,
c.F_CONTACT_NAME,
c.F_CONTACT_FNAME,
DATE_FORMAT(c.F_DOB, '%d/%m') F_DOB
FROM t_contact c
ORDER BY (case when month(c.F_DOB) >= '08' then month(c.F_DOB)
else month(c.F_DOB) + 12
end)
LIMIT 0, 10;
即添加" 12"到明年的月份数。注意:这不会考虑当月的某一天,因为您的原始查询没有。