我想在mysql中的两个日期之间检索数据。
从日期开始:01/04/2015
到目前为止:01/05/2015
但是我不能在单个变量中得到这些日期;
我如何得到如下所述:
$fdate=01;
$fmonth=04;
$tdate=01;
$tmonth=05;
$year=2015;
我在模型中的代码:
function date_range($fdate,$fmonth,$tdate,$tmonth,$year)
{
$this->db->select('*');
$this->db->where('DAY(order_date) >=',$fdate);
$this->db->where('MONTH(order_date) >=',$fmonth);
$this->db->where('YEAR(order_date) >=',$year);
$this->db->where('DAY(order_date) <=',$tdate);
$this->db->where('MONTH(order_date) <=',$tmonth);
$this->db->where('YEAR(order_date) <=',$year);
return $this->db->get('orders');
}
有时候它会正确地返回结果,有时它不会返回结果,但我在提到的两个日期之间的mysql
中有一个数据。
我对这段代码犯了什么错误请帮帮我
答案 0 :(得分:6)
你可以使用
$this->db->where("YOUR COLUMN BETWEEN DATE_FORMAT(COLUMN1,'%d/%m/%Y') AND DATE_FORMAT(COLUMN2,'%d/%m/%Y'"));
答案 1 :(得分:4)
这应该这样做:
function date_range($fdate,$fmonth,$tdate,$tmonth,$year)
{
$this->db->select('*');
$this->db->where('order_date <=',date('Y-m-d',mktime(0,0,0,$fmonth,$fdate,$year)))
$this->db->where('order_date >=',date('Y-m-d',mktime(0,0,0,$tmonth,$tdate,$year)))
return $this->db->get('orders');
}
答案 2 :(得分:3)
您可以使用CodeIgniter:
$query = $this->db->query("YOUR QUERY");
您的"Your QUERY"
将包含mysql DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
例如使用Query Binding
sql = "SELECT * FROM some_table
WHERE order_date between DATE_FORMAT(? ? ?,'%d %m %Y')
AND DATE_FORMAT(? ? ?,'%d %m %Y')";
$this->db->query($sql, array($fdate, $fmonth, year, $tdate, $tmonth, year));
答案 3 :(得分:0)
public function get_between_dates($date_from, $date_to)
{
$this->db->where('order_date >=', $date_from);
$this->db->where('order_date <=', $date_to);
return $this->db->get()->result();
}
这是您如何获取两个日期之间的数据的方法。将表单输入分别命名为date_from
和date_to
。