如何在symfony2 DQL中基于日期时间列筛选查询结果


How to filter a query result based on a date time column in symfony2 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中不工作。还有其他方法可以达到这个目的吗?

我建议您创建一个占位符并传递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")