如何在字段为datetime时按日期查找项目?

时间:2014-05-05 09:31:35

标签: cakephp

我有一个带有DateTime字段的模型。 即使列是DateTime,我怎样才能按日期获取所有条目?

示例表汽车:

id; expiration
1;2014-12-22 00:00:00
2;2014-12-22 03:12:00
3;2014-10-09 01:10:29

如果我这样做:

$this->Car->find("all", array('conditions' => array('expiration' => '2014-12-22' ) ))

我只获得ID为1的项目(2014-12-22 00:00:00)

但我需要所有物品(1和2) 任何想法如何实现这一目标?在MySql中,我可以这样做:

SELECT * ... FROM..WHERE DATE_FORMAT(conditions, '%Y-%m-%d') = '2014-12-22'

3 个答案:

答案 0 :(得分:4)

试试这个

$this->Car->find("all", array('conditions' => array('DATE(ondate)' => '2014-12-22') ));

这将生成

SELECT * ... FROM..WHERE WHERE DATE(ondate) = '2014-12-22' 

答案 1 :(得分:1)

您需要更新您的查询,如下所示:

$this->Car->find("all", array(
                           'conditions' => array(
                              'DATE(expiration)' => '2014-12-22'
                           ) 
                       )
               );

在上面的查询中,Mysql现在只比较日期而不是在您提到的查询中使用的日期和时间。

答案 2 :(得分:-1)

您需要搜索范围:00:00:00-23:59:59 http://cookbook.mongodb.org/patterns/date_range/