MySQL - запрос названия месяца

Я написал в своей 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, он выдает ошибку ..

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
47
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Спасибо за ответ, но я хочу, чтобы мои результаты были преобразованы в месяц NAMES, а не в NUMBERS месяца .. @RayA

Johnn 26.11.2018 11:54

вы можете рассмотреть возможность использования DATE_FORMAT

Ray A 26.11.2018 12:12
Ответ принят как подходящий

Использовать

DATE_FORMAT(p.transactionDate,'%b')  AS MonthOfYear

Другие вопросы по теме