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.