Datetime 比较CakePHP中的日期时间

Datetime 比较CakePHP中的日期时间,datetime,cakephp,Datetime,Cakephp,我在Cakephp中有一个查询,它有一个存储的“datetime”字段,名为DropIn.drop\u in\u time。我只想“查找”那些DropIn.drop\u in\u time>NOW()的条目,但我很难让它这样做 条件DropIn.drop\u in\u time>“=>”NOW()在下面的查询中没有得到正确的结果。有更好的方法吗 $requests = $this->DropIn->find('all', array( 'conditions'

我在Cakephp中有一个查询,它有一个存储的“datetime”字段,名为
DropIn.drop\u in\u time
。我只想“查找”那些
DropIn.drop\u in\u time>NOW()的条目,但我很难让它这样做

条件
DropIn.drop\u in\u time>“=>”NOW()
在下面的查询中没有得到正确的结果。有更好的方法吗

$requests = $this->DropIn->find('all', array(
            'conditions' => array('DropIn.drop_in_time >' => 'NOW()', 'or' => array(array('DropIn.user_id' => $this->Auth->user('id')), array('DropIn.id' => $drop_in_ids))),
            'order'=>array('DropIn.created'=>'DESC')));

如果将值分隔为
'DropIn.drop\u in_time'=>'NOW()'
'NOW()'
表示文本值字符串
“NOW()”
。只需将其编写为一个SQL片段即可:
“DropIn.drop\u in\u time>NOW()”
。或者,使用
'DropIn.drop_in_time>'=>date('Y-m-dh:i:s')

如果确实要将DB表达式放入CakePHP查找中,可以使用表达式方法:

'DropIn.drop_in_time.' => $db->expression('CURDATE()'); 

然而,这有点失去了框架提供的数据库抽象的意义,所以按照deceze的建议去做,并将其与
date('Y-m-dh:i:s')
使用DboSource::expression('NOW')而不是NOW()非常感谢!这个建议很好。我知道这是一个愚蠢的语法问题,你也可以做'Model.date>'=>(object)'NOW()'iirc@deceze你是老板。