2013-04-24 60 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