2013-04-24 58 views
0

我想要检索今天插入的所有行(只有DATE,而不是时间)在我的mysql数据库中。检索今天插入的所有行

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

我插入了2013-04-24 02:00:00创建的测试行,很不幸,我没有得到任何结果。如果我用“>”更改“=”,它会成功运行OK。任何想法为什么会发生这种情况?看起来,今天的日期插入的所有条目在运行查询后有+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年4月24日00:00:00',这是不是等于“2013年4月24日02 :00:00'

+0

因此,对WHERE ....的每个请求都以大于CURRENT_DATE(2013-04-24 00:00:00)结束?这是有道理的。 – Radolino 2013-04-24 11:56:43

+0

就是这样。它适用于当前日期,但如果您在过去一天中请求,则可以使用“2013-04-24 00:00:00”和“2013-04-24 23:59:59”来管理BETWEEN子句。 – AlterPHP 2013-04-24 12:13:40

+0

我应该怎么知道:) – Radolino 2013-04-24 12:14:12