Delphi - Duda en Query!! Por favor Ayuda!!!

 
Vista:

Duda en Query!! Por favor Ayuda!!!

Publicado por Samia B (23 intervenciones) el 09/05/2003 01:13:19
Hola a todos! TEngo un problema para ejecutar un query, tengo que definir un rango de fechas y estoy usando el siguiente código en mi Query:
SELECT A.NNUM,B.DFECHA,A.CREF,A.CDET,A.CANT,A.COSTO,B.NTOTAL
FROM HVALOR A,HVALORX B
WHERE A.NNUM=B.NNUM AND B.DFECHA BETWEEN {D 04/05/2003} AND {D 08/05/2003} ORDER BY B.DFECHA,A.NNUM

No marca ningún error, pero el query sale vacio, creo que el problema es cómo definir que los datos de la clausula BETWEEN son fechas, pero ya traté varias cosas y no funcionaron, alguién podría orientarme, por favoooooooor!!!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda en Query!! Por favor Ayuda!!!

Publicado por Ernesto De Spirito (706 intervenciones) el 09/05/2003 01:54:34
Por lo general, las fechas de las consultas SQL se ponen como MM/DD/AAAA, y no como DD/MM/AAAA. Por ejemplo, en el caso de Paradox, tu consulta es

SELECT A.NNUM,B.DFECHA,A.CREF,A.CDET,A.CANT,A.COSTO,B.NTOTAL
FROM HVALOR A,HVALORX B
WHERE A.NNUM=B.NNUM AND B.DFECHA BETWEEN "05/04/2003" AND "05/08/2003" ORDER BY B.DFECHA,A.NNUM

Eso devuelve los registros del 4 al 8 de mayo. De todos modos, tu consulta devolvería los registros del 5 de abril al 5 de agosto, que es más abarcativo, así que realmente no parece a priori un problema de fechas. Tal vez realmente no hay registros que cumplen la condicion que planteas....

Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda en Query!! Por favor Ayuda!!!

Publicado por Samia B (23 intervenciones) el 09/05/2003 02:04:01
Gracias Ernesto:
El driver que estoy usando es Microsoft dBase VFP, y ya intente lo que me aconsejas, pero recibo el mensaje de error "[Microsoft][ODBC Visual FoxPro Driver]Incompatibilidad en el tipo de operador u operando.".
También ya verifique que la base de datos tenga información que cumpla con las condiciones. Crees que sea por el driver que estoy utilizando?
Gracias de Antemano por tu atención!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No sabría decirte...

Publicado por Ernesto De Spirito (706 intervenciones) el 09/05/2003 07:20:10
Sí, el ejemplo que te pasé se refería a Paradox, a modo de ejemplo, pues no sabía que tipo de base de datos se trataba, aunque me recordaba a FoxPro por el uso de las llaves como delimitador de literales de fecha, pero no reconocía la D y el espacio, por lo que supuse que no se trataba de FoxPro...

Bien, en el caso del FoxPro, los literales de fecha se delimitan con llaves, y van en formato {Mes/Día/Año}.

Yo he abierto una tabla Visual FoxPro me diante ODBC a través del Microsoft Visual FoxPro Driver, y he hecho una consulta SQL con fechas muy aprecida a la tuya. Sin la D y el espacio me ha funcionado bien, y con la D y el espacio la consulta no me devolvió registros ni tampoco generó error, concordando con la situación que planteas, así que asumo que ése es el problema. Prueba así:

SELECT A.NNUM,B.DFECHA,A.CREF,A.CDET,A.CANT,A.COSTO,B.NTOTAL
FROM HVALOR A,HVALORX B
WHERE A.NNUM=B.NNUM AND B.DFECHA BETWEEN {04/05/2003} AND {08/05/2003} ORDER BY B.DFECHA,A.NNUM

Espero que eso solucione tu problema.

Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Eres un ANGEL!!!!!

Publicado por Samia B (23 intervenciones) el 09/05/2003 18:28:32
Muchas gracias!
Efectivamente, eso resolvió mi problema. Ahora que tambien pienso que me ví muy tonta, pero mi necedad bloqueo mi perspectiva.
Gracias nuevamente, te has ganado mi corazón!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar