2017-06-24 97 views
2

在常见的查询,我们可以使用选择一个记录或大量使用这样的查询Yii2 - 选择月和年使用Yii/DB /表达

SELECT * FROM tagihan_cleaning 
    WHERE YEAR("ditagihkan_bulan") = 2017 AND 
     MONTH("ditagihkan_bulan") = 06 

现在,在yii2记录,我有一个dateInput,即06-2017。 那么,如何使用ActiveRecord只是查询above.So远,我不知道这样的:

TagihanCleaning::find()->where([ 
       'ditagihkan_bulan' => MONTH('ditagihkan_bulan') 
      ])->all(); 

请告知

回答

1

假设你的dateinput是字符串名称$ your_date_input,对于一个活动电子线上学习记录,你可以使用 一升,其中与结合

TagihanCleaning::find()->where(' YEAR("ditagihkan_bulan") = YEAR(str_to_date(:your_date_input1, "%m-%Y") 
        AND MONTH("ditagihkan_bulan") = MONTH(str_to_date(:your_date_input2, "%m-%Y")) 
      ->bindValue(':your_date_input1', $your_date_input) 
      ->bindValue(':your_date_input2', $your_date_input) 
      ->all(); 
1

您可以使用directQuery:

Yii::$app->db->createCommand('SELECT * FROM tagihan_cleaning 
    WHERE YEAR("ditagihkan_bulan") = 2017 AND 
     MONTH("ditagihkan_bulan") = 06') 
      ->queryAll(); 

和预处理语句:

$post = Yii::$app->db->createCommand('SELECT * FROM tagihan_cleaning WHERE YEAR("ditagihkan_bulan")=:year AND MONTH("ditagihkan_bulan")=:month') 
      ->bindValue(':year', '2017') 
      ->bindValue(':month', '06') 
      ->queryOne(); 
+0

你尝试呢? @Fadly Dzil – lalithkumar

+0

Oke,我会试试 –

+0

让我知道如果你得到任何错误 – lalithkumar

相关问题