php - 如何根据 symfony2 DQL 中的日期时间列过滤查询结果

标签 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 中不起作用。还有其他方法可以实现这一目标吗?

最佳答案

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

关于php - 如何根据 symfony2 DQL 中的日期时间列过滤查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15271133/

相关文章:

php - 为什么有状态服务器在 Ruby、PHP、Java、ASP.NET 等中不可能?

mysql - 在此 SQL 示例中,INTERVAL 的用法是否正确?

php - OpenSSL 启用但不工作

python - 月份范围计算未返回预期结果

python - Python 中的日出和日落时间

Symfony 将实体管理器注入(inject)自定义验证器

arrays - 带有键 "path"的数组的键 ""不存在,而 dump 表示存在

javascript - 使用嵌入的表单集合保存相关 Doctrine 实体时出现 Symfony SQL 错误

php - mysqli|mysql 扩展丢失

php - 用于 MAC OSX 的非基于 Java VM 的 PHP/JS IDE?