Symfony从数据库DateTime字段获得不同的月份

时间:2015-06-25 11:10:45

标签: php mysql symfony doctrine-orm

目前我有一个查询生成器,它从DateTime字段获取所有不同的日期,但我只需要获得不同的月份和年份,并忽略日期。例如,如果2015-06-15,2015-06-20,2015-07-10,2016-06-13的日期我应该得到2015-06,2015-07,2016-06。

有没有办法从数据库中获得这个结果,或者我需要用php吗?

我当前的查询如下所示:

$dates = $this->getEntityManager()->getRepository('EventBundle:Event')
            ->createQueryBuilder('e')
            ->select('e.startDate')
            ->where('e.startDate >= :startDate')
            ->setParameter('startDate', new DateTime('now'))
            ->orderBy('e.startDate', 'ASC')
            ->distinct()
            ->getQuery();

$dates = $dates->getResult();

1 个答案:

答案 0 :(得分:0)

您可以从数据库中获取它,但我认为您需要使用本机mysql查询,例如。

select distinct(DATE_FORMAT(e.startDate,'%Y-%m')) 
from event e 
where e.startDate >= :startDate

要执行原生查询,请参阅How to use Doctrine DBAL