CakePHP find condition for a query between two dates

前端 未结 6 1137
谎友^
谎友^ 2020-12-30 08:59

I have a start and an end date in my database and a $date variable from a form field. I am now trying to query all the rows where $date is either = start/end date in the db,

相关标签:
6条回答
  • 2020-12-30 09:50

    General Example For CakePHP 2.x Query

            $_condition = array("TABLENAME.id" => $id, "TABLENAME.user_id" => array_unique($_array), 'date(TABLENAME.created_at) BETWEEN ? AND ?' => array($start_date, $end_date));
            $result_array = $this->TABLENAME->find("all", array(
                'fields' => array("TABLENAME.id", "TABLENAME.user_id", 'TABLENAME.created_at'),
                "conditions" => $_condition,
                "group" => array("TABLENAME.id"), //fields to GROUP BY
                'joins' => array(
                    array(
                        'alias' => 'T2',
                        'table' => 'TABLENAME2',
                        'type' => 'LEFT',
                        'conditions' => array('TABLENAME.t_id = TABLENAME2.t_id')
                    ),
                    array(
                        'alias' => 'T3',
                        'table' => 'TABLENAME3',
                        'type' => 'LEFT',
                        'conditions' => array(
                            'IF(
                               TABLENAME.t3_id > 0,
                                    T2.f_id = T3.f_id,
                                    TABLENAME.ff_id = T2.ff_id
                                )'
                        )
                    ),
                ),
                'recursive' => 0
                    )
            );
    
    0 讨论(0)
  • 2020-12-30 09:50

    Use this

           $today = new DateTime( date('Y-m-d'));
    
           $fiveYearsBack = $today->sub(new DateInterval('P5Y'));
    
    0 讨论(0)
  • 2020-12-30 09:54
    $conditions = array(
            'conditions' => array(
            'and' => array(
                            array('Item.date_start <= ' => $date,
                                  'Item.date_end >= ' => $date
                                 ),
                'Item.title LIKE' => "%$title%",
                'Item.status_id =' => '1'
                )));
    

    Try the above code and ask if it not worked for you.

    Edit: As per @Aryan request, if we have to find users registered between 1 month:

    $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)')));
    
    0 讨论(0)
  • 2020-12-30 09:58
    $data=$this->post->find('all')->where([ 'id'=>$id,
    'price between'=>$price1,'and'=>$price2])->toArray();
    

    This query works as following:

    select * from post where id=$id and price between $price1 and $price2;
    

    " -- 'price between'=>$price1 --" become "price between $price1"

    0 讨论(0)
  • 2020-12-30 10:03

    This is more efficient and understandable IN BETWEEN query in cakephp 2.x

    $testing_log_device_site_name = $testingLogData['TestingLogDevice']['Siteid'];
    
    $conditions = array('TestingLogDevice.dateee BETWEEN ? and ?' => array($start_date, $end_date));
    
    $results = $this->TestingLogDevice->find('all', 
        array(
             'fields'=>array('dateee','timeee','Siteid'), 
             'conditions'=>array($conditions, 'TestingLogDevice.Siteid'=>$testing_log_device_site_name)
        )
    );
    pr($results);
    
    0 讨论(0)
  • 2020-12-30 10:04

    Here is CakePHP BETWEEN query example.

    I'm defining my arrays as variables, and then using those variables in my CakePHP find function call:

    // just return these two fields
    $fields = array('uri', 'page_views');
    
    // use this "between" range
    $conditions = array('Event.date BETWEEN ? and ?' => array($start_date, $end_date));
    
    // run the "select between" query
    $results = $this->Event->find('all', 
             array('fields'=>$fields, 
                   'conditions'=>$conditions));
    

    Ref from

    0 讨论(0)
提交回复
热议问题