如何根据symfony2 DQL中的日期时间列筛选查询结果

时间:2013-03-07 12:21:36

标签: php datetime symfony doctrine-orm dql

我有类似的查询:

$em->createQuery(
    'SELECT t FROM myTestBundle:User t WHERE t.userId = :username AND
    t.tokenCreatedtime > (NOW() - INTERVAL 800 MINUTE)'
);

(NOW() - INTERVAL 800 MINUTE)在DQL中无效。有没有其他方法可以实现这个目标?

1 个答案:

答案 0 :(得分:2)

我建议您创建一个占位符并传递DateTime对象

$q = $em->createQuery(
    'SELECT t FROM myTestBundle:User t WHERE t.userId = :username AND
    t.tokenCreatedtime > :createdTime '
);
$q->setParameter(':createdTime',new \DateTime("-800 minute")

此外,您可能希望将\DateTime对象创建为new \DateTime("-800 minute")