我按月获取数据的查询
$this->db->select('vehicle_make_and_model');
$this->db->join('tukai_drivers','tukai_drivers.driver_id=reqn_challans.dc_driver_id','left');
$this->db->where('dc_challan_date','MONTH(2)');
$this->db->order_by('dc_challan_id','desc');
$result=$this->db->get('reqn_challans')->result();
我正在尝试通过这样的codeignitor
$this->db->where('dc_challan_date','MONTH(2)');
它不起作用?有什么不对
像这样存储日期
答案 0 :(得分:10)
您需要从
更新where条件$this->db->where('dc_challan_date','MONTH(2)');
到
$this->db->where('MONTH(dc_challan_date)','2');
实际功能与MONTH(date)
类似,因此您的{1}}是您的专栏名称
答案 1 :(得分:1)
在SQL数据库中,您应 NOT 将函数应用于数据以适应where子句,以便最大化索引的好处(即获得更好的性能)。例如,您可以使用> = with<而不是使用MONTH(dc_challan_date)来获得一个月的数据。例如以下SQL:
select * from table
where dc_challan_date >= '2015-02-01'
and dc_challan_date < '2015-03-01'
数据库优化器可以在该查询中使用列dc_challan_date上的索引。该示例使用“sargable谓词”。