指定した範囲の日付を持つ特定の行のみを取得したいデータベースがあります。アクティブレコードでこれを適切に行う方法がわかりません。現在、私はアクティブなレコードクエリ内で標準のmysqlクエリを実行しているようです。これが私が探しているもののアイデアをあなたに与えてくれることを願っています。
また、今日や将来の3日間など、今日より前の何でも行を取得できるようにしたいと考えています。
$query = $this->db->query("SELECT * FROM 'topics_list' . 'topic date' WHERE DATE(order_datetime) BETWEEN '2012-10-01' AND '2012-10-3'");
これが道です。しかし、データベースにあるDATE形式に従って、変更する必要があります2012-10-01
および2012-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();
`$where = array(
"order_datetime <" => "2012-10-03",
"order_datetime >" => "2012-10-01"
);
$this->db->select("*")->get_where("topics_list" , $where)`
指定できます$where
およびアクティブレコードを使用
$where = "DATE(order_datetime) BETWEEN '2012-10-01' AND '2012-10-3'";
$this->db->where($where)->get('table_name');
CIのクエリビルダーを尊重して「Between」を使用するには:
$this->db->where("order_datetime BETWEEN '2018-10-01' AND '2018-10-3'","", FALSE);
$ 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();