CakePHP znajduje warunek dla zapytania między dwiema datami
Mam datę rozpoczęcia i zakończenia w mojej bazie danych i zmienną $ date z pola formularza. Próbuję teraz wysłać zapytanie do wszystkich wierszy, w których $ date jest = data początkowa / końcowa w db, lub DOWOLNA data pomiędzy tymi dwoma.
Jest to przeciwieństwo tego, co opisano w dokumentach dotyczących działania daysAsSql. Nie wiem, jak to zrobić. Poniższy wiersz nie działa jako warunek znalezienia w kontrolerze:
'? BETWEEN ? AND ?' => array($date, 'Item.date_start', 'Item.date_end'),
Każda pomoc jest bardzo mile widziana. To doprowadza mnie do szału.
Oto kompletne zapytanie i odpowiadający mu 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))