生年月日(dob)の日が現在から何日も離れたXXの間にあるMySQLデータベースからレコードを取得しようとしています。たとえば、現在から15日後までのすべての誕生日を表示します。私は以下の式を使用していますが、今日の日付が月末に近づくまで機能します。したがって、今日が6月1日で、今から15日間のすべての誕生日を取得したい場合は、問題なく機能します。しかし、今日が6月25日だった場合、15日間の終わりは別の月であるため、レコードは見つかりません。
SELECT contacts._id FROM `contacts` LEFT JOIN `groups` ON groups._id = "2"
WHERE (DAY(`dob`) BETWEEN DAY(CURDATE())
AND DAY(ADDDATE(CURDATE(), INTERVAL 15 DAY))
AND MONTH(`dob`) BETWEEN MONTH(CURDATE())
AND MONTH(ADDDATE(CURDATE(), INTERVAL15 DAY))
また、以下のコードのようなものを使用してみましたが、今年より前の年が見つからないため、DOBデータでは機能しません。したがって、年は無視する必要があります。
SELECT contacts._id FROM `contacts` LEFT JOIN `groups` ON groups._id = "2"
WHERE dob BETWEEN CURDATE() AND CURDATE() + 15
日付は、2012-08-27、1982-06-18、1963-07-26などとしてDBに保存されます。私はMONTH-DAY情報にのみ興味があります。