0

今日挿入されたすべての行 (時刻ではなく日付のみ) を mysql db に取得しようとしています。

$query = $em->createQuery("SELECT md
               FROM YtBundle:Mood md
               WHERE md.created_at = CURRENT_DATE()
               ");
$moods = $query->getResult();

2013-04-24 02:00:00 に作成されたテスト行を挿入しましたが、残念ながら結果が得られません。「=」を「>」に変更すると、正常に動作します。なぜこれが起こっているのですか?クエリの実行後、今日の日付に挿入されたすべてのエントリに +1 の差があるようです。

4

1 に答える 1

0

どうですか :

$query = $em->createQuery("SELECT md
               FROM YtBundle:Mood md
               WHERE md.created_at >= CURRENT_DATE()
               ");

$moods = $query->getResult();

列 created_at は TIMESTAMP 列に格納されるため、CURRENT_DATE = '2013-04-24 00:00:00' となり、'2013-04-24 02:00:00' と等しくありません

于 2013-04-24T11:53:04.853 に答える