在上一个问题(每天两次之间的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的原生功能。教义中是否有任何内容可以用来执行类似的查询,还是我不走运?谢谢。
既不是DAYOFWEEK
也不是TIME
,DAY
,...在 DQL 中受支持。
满足的最快方法是原生MySQL查询。