编码器。我在这里遇到一个小问题,无法找到解决方案。我正在使用CI中的Active Record构建查询。这是查询的代码:
$this->db->select("u.id AS user_id, u.email, p.display_name, p.first_name, p.last_name, s.status_id, s.message");
$this->db->select("DATE_FORMAT(s.created_at, `Publicado el %d/%m/%Y a las %h:%i %p`) AS created_at", FALSE);
$this->db->join($this->_table_users . ' u', 'u.id = s.user_id');
$this->db->join($this->_table_profiles . ' p', 'p.user_id = u.id');
$this->db->where_in('user_id', $str);
$this->db->where('deleted', 0);
$this->db->from($this->_table . ' s');
$this->db->order_by('s.created_at', 'desc');
但是我收到了这个错误:
错误号码:1054
“字段列表”中的未知列'Publicado el%d /%m /%Y a las%h:%i%p'
SELECT
u
。id
AS user_id,u
。p
。display_name
,p
。{{ 1}},first_name
。p
,last_name
。s
,status_id
。s
,DATE_FORMAT(s.created_at,message
)AS created_at FROM(Publicado el > %d/%m/%Y a las %h:%i %p
s,default_status
)加入>default_status
你ONdefault_users
。u
=id
。default_s
加入user_id
p ONdefault_profiles
。p
=user_id
。u
WHEREid
IN('5726,2,10293')和user_id
= 0订单 BYdeleted
。s
desc LIMIT 2
有没有人知道我在这个查询中可以使用DATE_FORMAT的位置?有趣的是与纯SQL工作相同的查询 欢呼并提前致谢
答案 0 :(得分:8)
在SELECT语句中添加FALSE作为第二个参数。您可能还必须在WHERE子句中执行类似的操作。
要查看的一些链接:
http://ellislab.com/forums/viewthread/74206/#368778
http://ellislab.com/forums/viewthread/206962/#963061
http://ellislab.com/codeigniter/user-guide/helpers/date_helper.html
答案 1 :(得分:2)
整理你的选择
$this->db->select("u.id AS user_id, u.email, p.display_name, p.first_name, p.last_name, s.status_id, s.message");
$this->db->select("DATE_FORMAT(s.created_at, `%d/%m/%Y`) AS created_at", FALSE);
$this->db->join($this->_table_users . ' u', 'u.id = s.user_id');
$this->db->join($this->_table_profiles . ' p', 'p.user_id = u.id');
$this->db->where_in('user_id', $str);
$this->db->where('deleted', 0);
$this->db->from($this->_table . ' s');
$this->db->order_by('s.created_at', 'desc');
答案 2 :(得分:1)
对我有用的技巧是将日期格式字符串放在括号内。例如替换
DATE_FORMAT(`pf_Partido`.`fecha`,'%d-%m-%Y')
通过
DATE_FORMAT(`pf_Partido`.`fecha`,('%d-%m-%Y'))
在您的情况下,代码将是
$this->db->select("DATE_FORMAT(s.created_at, ('Publicado el %d/%m/%Y a las %h:%i %p')) AS created_at");
- 迟到总比没有
答案 3 :(得分:0)
查看返回的消息,格式为'Publicado el> %d /%m /%Y a las%h:%i%p'不能与`一起传递,codeigniter将其删除,您需要使用'(单引号)来分隔它们。 有关更多信息,请参阅 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format