CDbCriteria lavorare con le date

Ho l’esigenza di creare un filtro per un campo data di un modello.Dopo aver letto un pò di materiale in giro ho realizzato l’implementazione della function search() del modello così:




$criteria->compare('nomeCli',$this->nomeCli,true);

$criteria->compare('cognomeCli',$this->cognomeCli,true);

		

		

//http://www.yiiframework.com/forum/index.php/topic/22378-date-compare-in-cdbcriteria-solved/

//$now = new CDbExpression("NOW()");

if($this->date_INIZIO != '') {

    $date = DateTime::createFromFormat('d-m-Y', $this->date_INIZIO);

    $criteria->addCondition('date >= "' . $date->format('Y-m-d') . '"');

}

		

if($this->date_FINE != '') {

   $date = DateTime::createFromFormat('d-m-Y', $this->date_FINE);

   $date->add(new DateInterval('P1D')); //aggiunge 1 giorno

   $criteria->addCondition('date < "' . $date->format('Y-m-d') . '"');

}


print_r($criteria);

l’ultima riga il print_r mi mostra l’oggetto in cui posso vedere che ha costruito correttamente la condizione pari a:


(date >= "2012-06-06") AND (date < "2012-06-07")

tale filtro mi restituisce su Yii un solo record,

ma se la eseguo direttamente su db ottengo 2 record.

Il che sembrerebbe un bug di Yii o mio.

Qualcuno ha qualche idea consiglio suggerimento aiuto da darmi?

Risolto.

La funzione che ho postato è perfetta.

Il bug era da tutt’altra parte.