1

在上一个问题(每天两次之间的 SQL 查询)中,我询问了有关查询一组数据并返回与它们相关联的日期在两个小时值之间的所有条目。我也试图排除周六和周日。在处理纯 SQL 时,我收到的答案是有效的:

SELECT *
FROM yourtable
WHERE TIME(created_at) BETWEEN '08:00:00' AND '15:00:00'

但我实际上需要在使用 Symfony2/Doctrine 时这样做。当我创建以下内容时,这并不奇怪:

$myQuery= $this->em->createQuery("SELECT f FROM myBundle:Foo f
            WHERE f.bar = 1
            AND TIME(f.myTimestamp) BETWEEN :myStart AND :myEnd
            AND DAYOFWEEK(f.myTimestamp) NOT IN (1,7)") 
                ->setParameter('myStart', $myStart)
                ->setParameter('myEnd', $myEnd)
                ->getResult();

我遇到了例外,因为 TIME 和 DAYOFWEEK 不是 Doctrine 的本机功能。Doctrine 中有什么东西可以用来执行类似的查询,还是我不走运?谢谢。

4

1 回答 1

1

DAYOFWEEKDQL不支持也不支持TIME, DAY, ...。

最快的满足方式是原生 MySQL 查询

于 2013-11-04T22:08:45.987 回答