Я работаю в Zend Framework 2 и использую язык запросов Doctrine.
Мне нужно добавить фильтр по возрасту на странице со списком пользователей. В базе данных я сохранил дату рождения пользователей в формате даты. Пожалуйста, помогите мне, как я могу использовать условие where для применения моего фильтра.
$repository = $this->entityManager->getRepository('User\Entity\User');
$query = $repository->createQueryBuilder('u');
$query->where("(DATE_DIFF(CURRENT_DATE(), u.birth_date)/365)=".$search_arr['age']);
Этот запрос ничего не возвращает. Причина может заключаться в том, что когда я запускаю его в mysql DATEDIFF( CURRENT_DATE( ) , u.birth_date ) /365
, он возвращает количество лет в формате с плавающей запятой, например 10.29. Мне нужно преобразовать его в целое число для сравнения. Mysql предоставляет функцию FLOOR, но она не работает в DQL.
Пожалуйста, помогите мне в этом.