Проблемы с днем рождения сложны:
select t.*
from t
where (year(current_date) = year(add_months(current_date, -2)) and
date_format(dob, 'MM-DD') between date_format(add_months(current_date, -2), 'MM-DD') and date_format(current_date, 'MM-DD')
) or
(year(current_date) > year(add_months(current_date, -2)) and
date_format(dob, 'MM-DD') not between date_format(current_date, 'MM-DD') and date_format(add_months(current_date, -2), 'MM-DD')
)
По сути, вам нужно сравнивать только месяц и день, а не год.Затем необходимо учитывать, когда период выходит за границы года.