Я использую 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'"