我将Symfony2与Doctrine2结合使用,并尝试选择一周中的第一天和最后一天。如何使用DATE_ADD在查询的选定部分中汇总值?
$qb = $this->createQueryBuilder( 'r' );
$query = $qb->select( [
"COUNT(r.id) as events_amount",
"MAX(r.eventDate) AS event_date",
"DATE ( DATE_ADD ( r.eventDate, INTERVAL( 1 - DAYOFWEEK(r.eventDate) ) DAY ) ) as start_of_week",
"DATE ( DATE_ADD ( r.eventDate, INTERVAL( 7 - DAYOFWEEK(r.eventDate) ) DAY ) ) as end_of_week",
"WEEK (STR_TO_DATE(r.eventDate, '%Y-%m-%d'))) as week_number"
] )
->where( "STR_TO_DATE(r.eventDate, '%Y-%m-%d') BETWEEN :start_date AND :end_date")
->groupBy( 'week_number' )
->orderBy( 'event_date', 'ASC' )
->setParameter('start_date', $start_date->format( 'Y-m-d' ))
->setParameter('end_date', $end_date->format( 'Y-m-d' ));
现在,我收到此回复:
"[Syntax Error] line 0, col 96: Error: Expected known function, got 'INTERVAL'"