前の質問 (毎日 2 時間の間の SQL クエリ) で、一連のデータに対してクエリを実行し、2 時間の値の間に関連付けられた日付を持つすべてのエントリを返すことについて質問しました。また、土曜日と日曜日を除外しようとしています。私が受け取った答えは、プレーンな 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 内で同様のクエリを実行するために使用できるものはありますか?それとも運が悪いのでしょうか? ありがとう。