我的数据库中有一个开始日期和一个结束日期,还有一个来自表单字段的 $date 变量。我现在正在尝试查询 $date 是数据库中的开始/结束日期或这两者之间的任何日期的所有行。
这与 daysAsSql 如何工作的文档中描述的内容相反。我不知道如何让它工作。以下行不能作为控制器中的查找条件:
'? BETWEEN ? AND ?' => array($date, 'Item.date_start', 'Item.date_end'),
任何帮助是极大的赞赏。这真让我抓狂。
这是完整的查询和相应的 SQL:
$conditions = array(
'conditions' => array(
'and' => array(
'? BETWEEN ? AND ?' => array($date, 'Item.date_start', 'Item.date_end'),
'Item.title LIKE' => "%$title%",
'Item.status_id =' => '1'
)));
$this->set('items', $this->Item->find('all', $conditions));
WHERE (('2012-10-06' BETWEEN 'Item.date_start' AND 'Item.date_end') AND (`Item`.`title` LIKE '%%') AND (`Item`.`status_id` = 1))