mySQL SELECT upcoming birthdays

前端 未结 17 656
我寻月下人不归
我寻月下人不归 2020-12-03 11:17

I\'m trying to write a query to select users of a database whose birthdays are in the next 7 days.

I\'ve done a lot of research but I can\'t come up with a working s

17条回答
  •  暖寄归人
    2020-12-03 11:53

    Building on Lobo's answer to tackle leap years

    SELECT * FROM users
    WHERE DATE_ADD(dob,INTERVAL YEAR(CURDATE())-YEAR(dob)
      + IF(MONTH(CURDATE()) > MONTH(dob), 1,
         IF(MONTH(CURDATE()) = MONTH(dob) AND DAY(CURDATE()) > DAY(dob), 1, 0))
           YEAR)
            BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
    

提交回复
热议问题