Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2012, 02:15
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Problema con consulta en principio sencilla

Me he vuelto loco para crear un ODBC con una base de datos DBASE (de Visual Fox, para ser exactos del programa de gestion ClassicGes) y ahora que me funciona y puedo enviarle consultas, resulta que no logro que me realice la consulta que quiero.

A pesar de ser un formato antiguo parece que los comandos SQL funcionan exactamente igual.

Esto funciona:
Código PHP:
SELECT FROM factura WHERE clacli=$id_cliente 
Esto NO funciona:
Código PHP:
SELECT FROM factura WHERE clacli=$id_cliente AND fecha BETWEEN '2012-03-07' AND '2012-06-07' 
Y esto tampoco funciona:
Código PHP:
SELECT FROM factura WHERE clacli=$id_cliente AND fecha='2012-09-07' 
Esto me da este error por ejemplo:
ODBC Visual FoxPro Driver]Operator/operand type mismatch (bueno es mas largo pero lo importante es eso)

El campo fecha es de tipo DATE y si la consulto me devuelve los datos así:
2005-01-20

Lo que necesito es que me de las facturas del mes actual. Pero no veo la forma. Tal vez sea porque envío un string en lugar de una variable en formato fecha? Pero no se como hacer.
Sigo probando y nada.
Esto tampoco va:
Código PHP:
SELECT FROM factura WHERE clacli=$id_cliente AND fecha 2012-05-01 
Lo estoy intentando simplificar al máximo y cualquier cosa que haga con fecha me da error. Esto tampoco funciona, no lo entiendo:
Código PHP:
SELECT FROM factura WHERE fecha=2005-01-04 
Además esa fecha es válida, hay 4 resultados. Lo único que se me ocurre es meter todos los resultados en un array y ya filtrarlo por fechas con PHP pero menudo desperdicio de recursos.


SOLUCIONADO:
Lo he conseguido de la siguiente forma.
Código PHP:
SELECT FROM factura WHERE clacli=$id_cliente AND year(fecha)=$year AND month(fecha)=$month 
Por si le sirve a alguien.

Última edición por alyciashape; 07/09/2012 a las 03:34