2012-08-31 74 views
3

編碼器。我在這裏遇到一些小問題,找不到解決方案。我使用來自CI的Active Record構建查詢。這是查詢代碼:使用Active Record的CodeIgniter中的查詢中的DATE_FORMAT不起作用

$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'); 

但我發現了這個錯誤:

Error Number: 1054

Unknown column 'Publicado el %d/%m/%Y a las %h:%i %p' in 'field list'

SELECT u . id AS user_id, u . email , p . display_name , p . first_name , p . last_name , s . status_id , s . message , DATE_FORMAT(s.created_at, Publicado el > %d/%m/%Y a las %h:%i %p) AS created_at FROM (default_status s, default_status) JOIN >default_users u ON u . id = default_s . user_id JOIN default_profiles p ON p . user_id = u . id WHERE user_id IN ('5726, 2, 10293') AND deleted = 0 ORDER BY s . created_at desc LIMIT 2

是否有任何知道在哪裏可以此查詢中使用DATE_FORMAT?有趣的是與純SQL工作相同的查詢寫入 歡呼聲和提前致謝

回答

7

在您的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

+0

晚了,我按照你的建議和更改點我的查詢我現在編輯帖子請看看,因爲相同的查詢w ork在純SQL中很好,所以不知道爲什麼在這裏失敗 – ReynierPM

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'); 
+0

這對我來說非常合適,感謝您的幫助! – chromaloop

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"); 

--Better比從未

相關問題