2011-11-07 55 views
0

這是我的代碼,我問了tblTest的end_date。 end_date是一個日期時間。 下面是代碼,但它給我一個錯誤:CodeIgniter:選擇日期時間給出奇怪的回報

$this->db->select(date('end_date')); 
$this->db->where('topActive', 'true'); 
$this->db->order_by('end_date'); 
$this->db->group_by('end_date'); 
$q = $this->db->get('tblTest'); 

錯誤

Unknown column 'UTC1107_07pm30UTC' in 'field list' 
SELECT `UTC1107_07pm30UTC` 
FROM (`tblTest`) 
WHERE `topActive` = 'true' 
GROUP BY `UTC1107_07pm30UTC` 
ORDER BY `UTC1107_07pm30UTC` 

我在做什麼錯?

感謝

回答

1

在您選擇的方法,你傳遞一個Date對象。此方法接受您需要返回的列的名稱。 end_date是你的專欄名稱,所以請使用它。

$this->db->select('end_date'); 

UPDATE

這是結束了工作查詢:

$this->db->select("DATE(end_date) as my_end_date", FALSE); 
$this->db->where('topActive', 'true'); 
$this->db->order_by('my_end_date'); 
$this->db->group_by('my_end_date'); 
$q = $this->db->get('tblTest'); 
+0

好,謝謝,但問題是(沒寫這上面)。我想group_by日期和'end_date'是一個日期時間(Ymd H:我:S),我只想要日期(YMD) –

+0

哦,好的 - 那麼你需要將'date'函數作爲一個字符串傳遞它將被解釋爲mysql'DATE'函數,而不是php'date'函數,並將'false'作爲第二個參數來選擇。 '$ this-> db-> select(「DATE('end_date')」,FALSE);' - p.s.按照慣例,我會大寫的mysql函數,以幫助區分它與PHP函數。 – swatkins

+0

對不起,但它可以工作,這是我從print_r得到的: [date('end_date')] => –