如何在codeigniter活动记录中正确使用mysql MONTH()和YEAR()

时间:2013-04-15 09:12:35

标签: mysql codeigniter

我正在使用Codeigniter Active Record Class试图获取其中dataType为DATE的列的月份和年份

$this->db->where('mo', 'MONTH(so_date)');
$this->db->where('yr', 'YEAR(so_date)');

上面的代码给了我这个。 MONTH()和YEAR()用单引号括起来。

SELECT *
FROM mytbl 
WHERE `mo` = 'MONTH(so_date)'
AND `yr` = 'YEAR(so_date)'

//so_date looks like this : 2013-04-15

我在这里做错了什么或者我改变了什么以免得到引号?当我删除引号并尝试在PHPMYADMIN中运行它时,查询给出了我想要的内容。

2 个答案:

答案 0 :(得分:1)

来自doc

$this->db->where()接受可选的第三个参数。

如果您将其设置为FALSE,则CodeIgniter 将不会尝试使用反引号来保护您的字段或表名。

$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);

所以做的事情如下:

$this->db->where('mo', 'MONTH(so_date)' , FALSE);

答案 1 :(得分:1)

$this->db->where('mo = MONTH(so_date)');