Я написал в своей Symfony запрос, который возвращает общую сумму сумм за месяц в году. Но когда я пытаюсь преобразовать его из номера месяца в название месяца, он начинает
Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ","
Мой код ..
$resultYearly = $this->getTransactionRepository()
->createQueryBuilder('p')
->select('MONTH(p.transactionDate, \'%b\') AS MonthOfYear, sum(p.amount) Total')
MonthAndYear, sum(p.amount) Total')
->where('p.transactionDate >= :end')
->setParameter('end', new \DateTime('-1 year'))
->groupBy( 'MonthOfYear')
->getQuery()
->getArrayResult();
Он отлично работает с DATE_FORMAT, но когда я использую MONTH, он выдает ошибку ..






Вам необходимо удалить часть \'%b\' из функции Month, поскольку функция MONTH принимает только один параметр - дату.
Итак, ваш код должен быть:
$resultYearly = $this->getTransactionRepository()
->createQueryBuilder('p')
->select('MONTH(p.transactionDate) AS MonthOfYear, sum(p.amount) Total')
MonthAndYear, sum(p.amount) Total')
->where('p.transactionDate >= :end')
->setParameter('end', new \DateTime('-1 year'))
->groupBy( 'MonthOfYear')
->getQuery()
->getArrayResult();
вы можете рассмотреть возможность использования DATE_FORMAT
Использовать
DATE_FORMAT(p.transactionDate,'%b') AS MonthOfYear
Спасибо за ответ, но я хочу, чтобы мои результаты были преобразованы в месяц NAMES, а не в NUMBERS месяца .. @RayA