FoxPro/Visual FoxPro - problema con rango de fecha

 
Vista:

problema con rango de fecha

Publicado por bekyna (294 intervenciones) el 16/03/2007 17:47:36
Tengo un problema con una consulta, necesito seleccionar los datos de un rango de fechas por ejemplo todos los parámetros del 10/01/07 al 15/03/07 pero el detalle es que al realizar la consulta no respeta mi rango de fechas me da todas las fechas y es que hay un detalle, el campo de fecha esta declarado como tipo carácter de (10), ya lo considere le pido al usuario el rango de fechas y lo guardo en dos variables de tipo carácter
fecha_fin=(THISFORM.txtfecha_final.value)
fecha_inicial=(THISFORM.txtfecha_inicial.value)
SELECT fecha_reportada,estacion as Estación,estado,act_o3,act_no,act_no2,act_nox,act_so2,act_co,act_pm10,act_pm25;
FROM datos_rama;
WHERE ((fecha_reportada)>= fecha_inicial AND(fecha_reportada)<= fecha_fin);
INTO CURSOR tabla_rama

Agradecería su apoyo para poder realizar adecuadamente mi consulta.

Saludos.
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:problema con rango de fecha

Publicado por luishoracio (93 intervenciones) el 16/03/2007 19:15:40
Buenas tardes,

Para que trabajes con las fechas coloca estos comandos

set century on (queda el año de 4 dígitos)
set date to british (deja la fecha en formato dia/mes/año)

Porque no inicializas las variables tipo fecha asi:

fecha_fin=ctod(THISFORM.txtfecha_final.value)
fecha_inicial=ctod(THISFORM.txtfecha_inicial.value)

y ejecutas la consulta, si el campo fecha_reportada es caracter hazla asi:

SELECT fecha_reportada,estacion as Estación,estado,act_o3,act_no,act_no2,act_nox,act_so2,act_co,act_pm10,act_pm25;
FROM datos_rama;
WHERE ctod(fecha_reportada)>= fecha_inicial AND ctod(fecha_reportada)<= fecha_fin;
INTO CURSOR tabla_rama

si es tipo fecha hazlo normal

Hasta pronto
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:problema con rango de fecha

Publicado por juan fernando (537 intervenciones) el 16/03/2007 19:28:34
tienes invertidas las variables fecha_fin,fecha_inicial osea no hay un
orden lógico para el filtro :

es así :

fecha_fin=(THISFORM.txtfecha_final.value)
fecha_inicial=(THISFORM.txtfecha_inicial.value)

*-----------------------------------------------------------------------------------------
Publi fecha_inicial,fecha_fin

Set delete On

* Por aqui agrega un Set delete On
* para eliminar las tablas sql temporales
* Esto no altera lo que tengas en otros botones y en las Texts

fecha_inicial=(THISFORM.txtfecha_inicial.value)
fecha_fin=(THISFORM.txtfecha_final.value)

SELECT fecha_reportada,estacion as Estación,estado,act_o3,act_no,act_no2,act_nox,act_so2,act_co,act_pm10,act_pm25;
FROM datos_rama;
WHERE ((fecha_reportada)>= fecha_inicial AND(fecha_reportada)<= fecha_fin);
INTO CURSOR tabla_rama
*aqui agrega un clear para anular redibujar la pantalla y que sehan leidas las
* variables

clear
* esto es optátivo usa un Browse de prueba o un Report
*Browse
DEFINE WINDOW rptview FROM 2,1 TO 30,90 ;
SYSTEM TITLE '<ESC> Presentación Preliminar de la Factura ' ;
MINIMIZE FLOAT CLOSE Zoom
Report form Inform1 Preview Window rptview
RELEASE WINDOW rptview

* en las consultas Sql me funcionan de esta forma y errores de forma los
* he solucionado asi :
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
sin imagen de perfil

RE:problema con rango de fecha

Publicado por Ernesto Hernandez (4623 intervenciones) el 16/03/2007 21:13:40
solo cambia aqui

WHERE ((fecha_reportada)>= fecha_inicial AND(fecha_reportada)<= fecha_fin)

WHERE ((fecha_reportada)>= CTOD(fecha_inicial,1) AND(fecha_reportada)<= CTOD(fecha_fin,1))

sUERTE
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