MySQL - 查询月份名称
MySQL - Querying the name of the month
我在我的 Symfony 中写了一个查询 returns 一年中每个月的总金额。但是,当我尝试将它从月份编号转换为月份名称时,它显示
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 时它会抛出错误..
您需要从Month
函数中删除\'%b\'
的部分,因为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(p.transactionDate,'%b') AS MonthOfYear
我在我的 Symfony 中写了一个查询 returns 一年中每个月的总金额。但是,当我尝试将它从月份编号转换为月份名称时,它显示
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 时它会抛出错误..
您需要从Month
函数中删除\'%b\'
的部分,因为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(p.transactionDate,'%b') AS MonthOfYear