Предложение выбора SQL Symfony2 / Doctrine2 с помощью DATE_ADD - PullRequest
1 голос
/ 30 марта 2019

Я использую 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'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...