2015-05-15 44 views
1

嗨,我想知道是否有反正我們可以使用CDbCriteria獲取基於特定月份日期的數據。假設我需要5月份創建的所有條目,我有一列paid_on,所以當我選擇May(05)時,我需要獲取所有條目xxxx-05-xx,其中05爲月份。我得到這與Yii創建db命令使用Yii CDbCriteria獲取特定月份的日期

$monthno = date('m',strtotime($_POST['month'])); 
$sql  = "SELECT * FROM fee_track WHERE DATE_FORMAT(paid_on,'%m') = ".$monthno.""; 
$data = Yii::app()->db->createCommand($sql)->queryAll(); 

我需要知道,如果我可以做同樣的CDbCriteria。謝謝!

回答

0

您可以使用conditionCDbCriteria()這樣,它應該爲你工作。

$monthno = date('m',strtotime($_POST['month'])); 

$criteria = new CDbCriteria(); 
$criteria->select="*"; 
$criteria->condition = "DATE_FORMAT(paid_on,'%m')=:monthno"; 
$criteria->params = array(':monthno'=>$monthno); 
$modelResult= Yii::app()->db->commandBuilder->createFindCommand(fee_track,$criteria)->findAll(); 

echo '<pre>'; 
print_r($model); 
echo '</pre>'; 

編輯:按照註釋

$modelResult= YourModel::model()- 
>findAll($criteria); 
+0

嗨,感謝一堆它的工作,但$ modelresult dint需要Yii ::應用程序() - >數據庫...我只是使用正常的$模型= MyModel ::模型() - > findAll($標準); – Arun

+0

@Arun,是$ model = MyModel :: model() - > findAll($ criteria);也是不錯的一個。祝你好運。 –

0

嘗試使用此代碼

$criteria = new CDbCriteria(); 
$criteria->condition = "DATE_FORMAT(paid_on,'%m')=:monthno"; 
$criteria->params = array(':monthno'=>'05'); 
$model= YourModel::model()->findAll($criteria); 

我認爲這將有助於你:)

+0

你好,這力的工作,但通過被陽光下面幫助發佈的代碼。無論如何非常感謝! :) – Arun