MySQL - запрос названия месяца - PullRequest
0 голосов
/ 26 ноября 2018

Я написал запрос в моем Symfony, который возвращает общую сумму за месяц в году.Но когда я пытаюсь преобразовать его из номера месяца в название месяца, оно выдает

Ошибка: ожидаемая доктрина \ ORM \ Query \ Lexer :: T_CLOSE_PARENTHESIS, ","

Мой код ..

$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, он выдает ошибку ..

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Использование

DATE_FORMAT(p.transactionDate,'%b')  AS MonthOfYear
0 голосов
/ 26 ноября 2018

Вам необходимо удалить часть \'%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();
...