一个想法是从日期提取比较日期为DateTime。然后
$qb->select('p')
->where('YEAR(p.postDate) = :year')
->andWhere('MONTH(p.postDate) = :month')
->andWhere('DAY(p.postDate) = :day');
$qb->setParameter('year', $year)
->setParameter('month', $month)
->setParameter('day', $day);
月日,年你从
例如取出DoctrineExtensions
DoctrineExtensions
这对我的作品。你只需要在文件:day.php,month.php和year.php .....
你得到的月如:
$datetime = new \DateTime("now");
$month = $datetime->format('m');
echo $month;
复制day.php,month.php和年份。 PHP向您的绑定XY \ TestBundle \ DQL 注册新的功能,在应用程序\ config.yml与
doctrine:
orm:
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
default:
auto_mapping: true
dql:
datetime_functions:
month: Xy\TestBundle\Dql\Month
year: Xy\TestBundle\Dql\Year
day: Xy\TestBundle\Dql\Day
它工作,但它有点脏。你知道QueryBuilder的DATE()函数是否与这个包一起提供? – gperriard
@jooyce没有。 [Here](https://github.com/simukti/DoctrineExtensions/tree/master/lib/DoctrineExtensions/Query/Mysql)是可用的扩展名列表 –
这仍然适用于MySQL和Oracle吗? –