gpt4 book ai didi

CakePHP 查找两个日期之间查询的条件

转载 作者:行者123 更新时间:2023-12-04 01:28:14 25 4
gpt4 key购买 nike

我的数据库中有一个开始日期和一个结束日期,还有一个表单字段中的 $date 变量。我现在试图查询 $date 是数据库中的开始/结束日期或这两者之间的任何日期的所有行。

这与 daysAsSql 如何工作的文档中描述的相反。我不知道如何让它工作。以下行不能作为 Controller 中的查找条件:

'? 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))

最佳答案

$conditions = array(
'conditions' => array(
'and' => array(
array('Item.date_start <= ' => $date,
'Item.date_end >= ' => $date
),
'Item.title LIKE' => "%$title%",
'Item.status_id =' => '1'
)));

尝试上面的代码并询问它是否对您不起作用。

编辑:
根据@Aryan 的要求,如果我们必须查找在 1 个月内注册的用户:
$start_date = '2013-05-26'; //should be in YYYY-MM-DD format
$this->User->find('all', array('conditions' => array('User.reg_date BETWEEN '.$start_date.' AND DATE_ADD('.$start_date.', INTERVAL 30 DAY)')));

关于CakePHP 查找两个日期之间查询的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11931633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com