我正在尝试查找数据库中存在的用户的“即将到来的生日”。
我只能在 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
如何找到“一月”出生的用户即将到来的生日,因为
DATE_FORMAT(F_DOB, '%m') >= '08'
可以检查到第12个月。
有人可以帮助我吗?
最佳答案
我不知道为什么你有一个分组依据
。我会使用 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”。注意:这不会考虑该月的某一天,因为您的原始查询没有考虑该日期。
关于php - Mysql 日期字段搜索使用月份来查找即将到来的生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25403811/