2015-05-15 43 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