2017-06-24 21 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

相關問題