Mysql日期字段搜索使用几个月来查找即将到来的生日

时间:2014-08-20 11:43:17

标签: php mysql sql date logic

我正试图在数据库中出现“用户即将到来的生日”。

我能够将用户即将到来的生日罚款到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个月。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我不知道为什么你有group by。我会使用order bylimit

执行此操作
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"到明年的月份数。注意:这不会考虑当月的某一天,因为您的原始查询没有。