如何使用活动记录查询sql以获取指定时间之间的日期
Posted
技术标签:
【中文标题】如何使用活动记录查询sql以获取指定时间之间的日期【英文标题】:How to query sql with active record for dates between specified times 【发布时间】:2012-08-19 14:13:22 【问题描述】:我有一个数据库,我只想提取日期在指定范围内的某些行。我不确定如何在活动记录中正确执行此操作。现在看起来我在活动记录查询中运行标准 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的格式是什么 【参考方案1】:您可以指定 $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();
【讨论】:
【参考方案2】:尊重CI的Query builder来使用“Between”:
$this->db->where("order_datetime BETWEEN '2018-10-01' AND '2018-10-3'","", FALSE);
【讨论】:
【参考方案3】:`$where = array(
"order_datetime <" => "2012-10-03",
"order_datetime >" => "2012-10-01"
);
$this->db->select("*")->get_where("topics_list" , $where)`
【讨论】:
【参考方案4】:就是这样。但根据您在数据库中的日期格式,您必须更改 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();
【讨论】:
【参考方案5】:您可以指定您$where
并使用活动记录
$where = "DATE(order_datetime) BETWEEN '2012-10-01' AND '2012-10-3'";
$this->db->where($where)->get('table_name');
【讨论】:
以上是关于如何使用活动记录查询sql以获取指定时间之间的日期的主要内容,如果未能解决你的问题,请参考以下文章