如何在活动记录中查询具有指定时间之间日期的sql

时间:2012-08-24 01:36:06

标签: php mysql codeigniter phpactiverecord active-record-query

我有一个数据库,我想只提取日期在指定范围内的某些行。我不确定如何在活动记录中正确地做到这一点。现在看起来我正在活动记录查询中运行标准的mysql查询。我希望这可以让你了解我在寻找什么。

我希望能够在今天之前获得任何行,包括今天和未来3天。

$query = $this->db->query("SELECT * FROM 'topics_list' . 'topic date' WHERE DATE(order_datetime) BETWEEN '2012-10-01' AND '2012-10-3'");

5 个答案:

答案 0 :(得分:20)

这就是方法。但根据您在数据库中的DATE格式,您必须更改2012-10-012012-10-03

$this->db->select('*');
$this->db->from('topics_list');
$this->db->where('order_datetime <','2012-10-03');
$this->db->where('order_datetime >','2012-10-01');

$result = $this->db->get();

答案 1 :(得分:3)

`$where = array(
  "order_datetime <" => "2012-10-03",
  "order_datetime >" => "2012-10-01"
);
$this->db->select("*")->get_where("topics_list" , $where)`

答案 2 :(得分:2)

您可以指定$where并使用有效记录

$where = "DATE(order_datetime) BETWEEN '2012-10-01' AND '2012-10-3'";
$this->db->where($where)->get('table_name');

答案 3 :(得分:0)

使用&#34;之间&#34;通过尊重CI的查询构建器:

$this->db->where("order_datetime BETWEEN '2018-10-01' AND '2018-10-3'","", FALSE);

答案 4 :(得分:0)

您可以在$ where中指定您的位置并使用活动记录

$this->db->group_start()
          ->or_where("product_order.generate_date >= ","$start_date")
          ->or_where("product_order.generate_date <","$end_date + INTERVAL 1 DAY")
          ->group_end();