如何在Doctrine中选择过去2小时的行

时间:2014-10-17 09:58:39

标签: php mysql symfony doctrine-orm doctrine

我正在尝试从Symfony / Doctrine单元中选择最后2小时的行。在普通的MySQL中,这将是这样做的: SELECT * FROM Posts WHERE {日期{1}}

但Doctrine不支持> SUBDATE( CURRENT_TIMESTAMP, INTERVAL 2 HOUR)SUBDATE等MySQL关键字。在Doctrine文档中,仅给出了包含日期和月份的间隔的替代方案。但我需要几个小时。我该怎么做?

1 个答案:

答案 0 :(得分:22)

使用php DateTime对象 - doctrine会为你处理这个

$date = new \DateTime();
$date->modify('-2 hour');

$this
    ->createQueryBuilder('t')
    ->andWhere('t.date > :date')
    ->setParameter(':date', $date)
    ->getQuery()
    ->execute();