首页 > 解决方案 > Symfony Doctrine Query:SELECT ALL 取决于时差

问题描述

我正在尝试创建一个查询,其中 Doctrine 将根据由列中的值确定的时间差来选择行。

有这两列:

diff (type=integer) - 指定分钟数

start (type=datetime) - 指定开始时间

现在我需要一个查询,它将选择开始列中的值与实际当前时间之间的时间差小于diff列中的数字的所有行。

换句话说,查询应该选择开始列中的日期不超过差异列中的分钟数的所有行。

任何形式的帮助将不胜感激。非常感谢。

标签: symfonytimedoctrinedate-difference

解决方案


在 MySQL 中,您可以使用类似TIMESTAMPDIFF(MINUTE, start, NOW()) > diff

TIMESTAMPDIFF 文档:https ://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php

但我认为你不能直接在 DQL 上使用它,也许可以创建一个原生查询:https ://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/native-sql.html#本机 sql


推荐阅读