目前我有一个查询生成器,它从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();
答案 0 :(得分:0)
您可以从数据库中获取它,但我认为您需要使用本机mysql查询,例如。
select distinct(DATE_FORMAT(e.startDate,'%Y-%m'))
from event e
where e.startDate >= :startDate
要执行原生查询,请参阅How to use Doctrine DBAL