У меня есть таблица пользователей с полем birthday
(ДАТА).
В настоящее время я выбираю пользователей, чьи дни рождения в течение 7 дней или раньше текущей даты, например:
SELECT * FROM users
WHERE
DATE_FORMAT(birthday, '1980-%m-%d')
BETWEEN
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 7 day), '1980-%m-%d')
AND
DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 7 day), '1980-%m-%d')
Как видите, этот запрос не является наиболее упорядоченным, учитывая сравнение с использованием фабричного форматирования 1980-х годов.Кроме того, я считаю, что это не сможет правильно выбрать пользователей на день рождения в последнюю и первую неделю года.
Пока я вижу проблемы с этим, я изо всех сил пытаюсь найти, как подойти к этому.Что я могу сделать, чтобы улучшить этот запрос?