$ventas = $this->Venta->query("SELECT * FROM ventas WHERE
Ventas.estado = 2 and Ventas.medio_pago = 'banco' and
Ventas.fecha_venta BETWEEN '2009-01-01' AND '2009-12-31';");
de esta forma si recupera tal y como quiero, el problema es que cuando
mando la variable $ventas a un foreach, para que muestre los datos, no
resulta, xq? a caso la estructura del array que resulta de esta
consulta no es el adecuado para que el foreach?? con un debug compare
el array resultante con otro que me resulta de find, y son al parecer
iguales, entonces????
> $ventas = $this->Venta->query("SELECT * FROM ventas WHERE
> Ventas.estado = 2 and Ventas.medio_pago = 'banco' and
> Ventas.fecha_venta BETWEEN '2009-01-01' AND '2009-12-31';");
>
para empezar el query en mysql es usando SELECT EXTRACT(YEAR FROM
'2010-10-10');
otra cosa que te recomiendo es que utilizes la forma cake de hacer
querys:
$conditions = array('Venta.estado'=>2, 'Venta.medio_pago' =>
'banco','EXTRACT(YEAR FROM Ventas.fecha_venta)'=>'2010' );
$ventas = $this->Venta->find('all', array('conditions'=>$conditions;
podria ser tambien con SELECT .... FROM .. WHERE YEAR(campo_fecha) = 2010;
siempre y cuando el campo_fecha sea de tipo date... quizas por eso no
le funciona el BETWEEN.
> otra cosa que te recomiendo es que utilizes la forma cake de hacer querys:
[...]
exacto.
--
Ricardo Mun~oz A.
mala idea usar LIKE, es lento y ademas un campo de tipo 'date' permite
manejar fechas como fechas, no (solo) como strings...
--
Ricardo Mun~oz A.