如何获取特定日期范围内的记录

时间:2014-04-03 15:02:33

标签: php mysql sql codeigniter date

我的查询不起作用。我正在使用codeigniter。我想根据日期范围过滤获取这些记录的列表。

这是我的控制器:

public function filter($type){
  $fromdt = date("Y-d-m",strtotime($this->input->post("from")));
  $todt = date("Y-d-m",strtotime($this->input->post("to")));
  $session_data = $this->session->userdata('logged_in');
  $this->load->model("mymodel");    
  print_r($this->mymodel->filterdata($fromdt,$todt,$session_data['id'])); 
}

这是我的模特:

public function filterdata($from,$to,$userid){
  $query = $this->db->query("SELECT table1.id,table1.quest,table1.post_id,table1.quote_id,table2.in_dairy FROM table1,table2 
  WHERE table2.quote_id = table1.id AND table2.reader_id='$userid' 
  AND table1.in_dairy='yes' AND table2.dairy_dt>='$from' AND 
  table2.dairy_dt<='$to'");
  return $query->result();
}

注意:我的dairy_dt字段是Mysql中的TYPE OF DATE。我不知道为什么它会显示空结果。

2 个答案:

答案 0 :(得分:0)

尝试将您的功能更新为

public function filter($type){
   $fromdt = date("Y-m-d",strtotime($this->input->post("from")));
   $todt = date("Y-m-d",strtotime($this->input->post("to")));
   $session_data = $this->session->userdata('logged_in');
   $this->load->model("mymodel");    
   print_r($this->mymodel->filterdata($fromdt,$todt,$session_data['id'])); 
}

MySql日期格式如下: Y-m-d

答案 1 :(得分:0)

如果您没有分配您的查询,为什么要返回$ query-&gt; result()?我的意思是,

$this->db->query("SELECT table1.....
return $query->result();

$ query值在哪里?,你应该做

$query = $this->db->query("SELECT table1.....
return $query->result();