如何在codeigniter活动记录中正确使用mysql MONTH()和YEAR()
我使用Codeigniter活动记录类试图获取数据类型为DATE的列的月份和年份部分如何在codeigniter活动记录中正确使用mysql MONTH()和YEAR(),mysql,codeigniter,Mysql,Codeigniter,我使用Codeigniter活动记录类试图获取数据类型为DATE的列的月份和年份部分 $this->db->where('mo', 'MONTH(so_date)'); $this->db->where('yr', 'YEAR(so_date)'); 上面的代码给了我这个。月份()和年份()用单引号括起来 SELECT * FROM mytbl WHERE `mo` = 'MONTH(so_date)' AND `yr` = 'YEAR(so_date)' //so
$this->db->where('mo', 'MONTH(so_date)');
$this->db->where('yr', 'YEAR(so_date)');
上面的代码给了我这个。月份()和年份()用单引号括起来
SELECT *
FROM mytbl
WHERE `mo` = 'MONTH(so_date)'
AND `yr` = 'YEAR(so_date)'
//so_date looks like this : 2013-04-15
我在这里做错了什么,或者为了不得到引号,我应该修改什么?当我删除引号并尝试在PHPMYADMIN中运行它时,查询会给出我想要的结果 来自
$this->db->where()
接受可选的第三个参数
如果您将其设置为FALSE,CodeIgniter将不尝试保护带有反勾号的字段或表名
$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);
所以你可以这样做:
$this->db->where('mo', 'MONTH(so_date)' , FALSE);
so\u date
是日期字段的名称,还是传递给查询的变量?如果是后者,那么它应该看起来像$this->db->where('mo','MONTH('.$so_date')代码>
$this->db->where('mo = MONTH(so_date)');