は、私が実際に必要なもの:QueryBuilderと先月から返すレコードをSymfony2のCURRENT_DATE()と先月のQueryBuilderの差を計算するにはどうすればよいですか?
で、または他の言葉で:は私がやった教義QueryBuilder
created_at >= DATE_FORMAT(NOW(), '%Y-%m-%d') - INTERVAL 1 MONTH
に次のMySQLクエリを変換:
$clicks = $clickRepo->createQueryBuilder('c')
->select('c.product, c.createdAt, c.title')
->addSelect('COUNT(c.product)')
->where('c.type = :pro')
->setParameter('pro', 'product')
->andWhere('c.createdAt >= DATE_DIFF(CURRENT_DATE(), :end)')
->setParameter('end', new \DateTime('-30 days'), \Doctrine\DBAL\Types\Type::DATETIME)
->andWhere('c.shop != :null')
->setParameter('null', '0')
->andWhere('c.visible = :one')
->setParameter('one', '1')
->groupBy('c.product')
->setMaxResults(2)
->getQuery()->getResult();
R結果:
array(1) {
[0]=>
array(4) {
["product"]=>
int(3)
["createdAt"]=>
object(DateTime)#3211 (3) {
["date"]=>
string(26) "2016-02-19 13:27:45.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Berlin"
}
["title"]=>
string(23) "Title BlaBla"
["clicks"]=>
string(1) "2"
}
}
テーブルの先頭にはレコードのみが返されます。
1.私は質問のタイトルを編集しました。 DoctrineはCURRENT_DATE()のみをサポートします。 [Doctrine \ ORM \ Query \ QueryException] [構文エラー]行0、列168:エラー:期待されるDoctrine \ ORM \ Query \ Lexer :: T_CLOSE_PARENTHESIS、 1 ' –
3.私は、あなたのフォームにも問題があることを警告しなければなりません。 c.createdAt> =(NOW()、INTERVAL 1 MONTH) –