MYSQL Codeigniter 中 30 天的间隔

Raj*_*jan -1 php mysql codeigniter

这两个查询是否相同:

SELECT count(site_key) as count_lic FROM (`activation`) 
  WHERE    `site_key` = '36LYRAHK0100000000B6101442Cs' AND `user_id` = '' AND `request_time` = 'BETWEEN NOW() - INTERVAL 30 DAY AND NOW()




SELECT count(site_key) as count_lic FROM (`activation`) WHERE `site_key` = '36LYRAHK0100000000B6101442Cs' AND `user_id` = '' AND `request_time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
Run Code Online (Sandbox Code Playgroud)

我们可以使用'request_time' = 'BETWEEN .......'吗?

我正在使用 PHP Codeigniter,我已经完成了:

function fGetUsedLicenses($site_id) {

    //count number of activations without user_id
    $this->db->select('count(site_key) as count_lic');
    $this->db->where('site_key', $site_id);
    $this->db->where('user_id','');
    $this->db->where('request_time', 'BETWEEN NOW() - INTERVAL 30 DAY AND NOW()');
    $this->db->from('activation');
    $query = $this->db->get();
    $result = $query->row();
    $count = $result->count_lic;

    echo $this->db->last_query();
    //count number of activations with unique user_id
    $this->db->select('count(DISTINCT user_id) as count_lic');
    $this->db->where('site_key', $site_id);
    $this->db->where('user_id !=','');
    $this->db->where('request_time', 'BETWEEN NOW() - INTERVAL 30 DAY AND NOW()');
    $this->db->from('activation');
    $query = $this->db->get();
    $result = $query->row();
    $count += $result->count_lic;

    var_dump($count);
    echo $this->db->last_query();
    exit(0);
    return $count;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用这种方式生成的查询是 'request_time' 'BETWEEN .....'

spl*_*h58 5

你可以这样写

->where('request_time BETWEEN NOW() - INTERVAL 30 DAY AND NOW()', "", false);
Run Code Online (Sandbox Code Playgroud)