Обновить
0
Ад@aubtread⁠-⁠only

Пользователь

Отправить сообщение
поскольку*
Ваш запрос рабочий, однако конвертация в секунды имеет один недостаток — в выборку не попадают сегодняшние дни рождения, посколько unix_timestamp(now()) даже при совпадении дат отличается от unix_timestamp(birthdate) в большую сторону на текущее время.

Хотя это легко исправимо, думаю Ваш запрос все-таки, скажем так, элегантнее :)
Я проверил.
Подставьте вместо current_date '2009-12-31', например.
Первый запрос не учитывает новый год.
К сожалению, ответить точно насчет скорости не смогу, пример из проекта, где всего ~2500 записей в таблице, mysql-клиент выдает 0.00 sec.

Но, если рассуждать логически, выполняются все те же действия, что и у Вас, только средствами mysql, что, по моему подозрению, быстрее чем zf+mysql.
Дни рождения в ближайшие 5 дней:

select
u.birthdate
from user__accounts as u
where
datediff(
date_add(
u.birthdate,
interval year(from_days(datediff(current_date, u.birthdate)))+1 year
),
current_date
) < 5
12 ...
32

Информация

В рейтинге
Не участвует
Откуда
Майкоп (Адыгея), Адыгея, Россия
Дата рождения
Зарегистрирован