具有DATE_ADD的Symfony2 / Doctrine2 SQL Select子句

时间:2019-03-29 22:50:06

标签: php mysql doctrine

我将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'"

0 个答案:

没有答案