Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

duda con buscar entre fechas

Estas en el tema de duda con buscar entre fechas en el foro de PostgreSQL en Foros del Web. buenas ..... tengo una problematica intento buscar entre fechas mediante between pero no me devuelve datos :S creo que esta mal planteada mi sentencia sql ...
  #1 (permalink)  
Antiguo 09/10/2009, 11:20
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
duda con buscar entre fechas

buenas ..... tengo una problematica
intento buscar entre fechas mediante between pero no me devuelve datos :S
creo que esta mal planteada mi sentencia sql
pero he intentado cambiarla varias veces y no pasa nada
aer si alguien me orienta por si estoy mal o me flata algo porfavor
Código:
CREATE OR REPLACE FUNCTION pau_buscar_con_fecha(refcursor, pdocumento integer, pinstitucion integer, pfecha1 date, pfecha2 date)
  RETURNS refcursor AS
$BODY$
BEGIN
  OPEN $1 FOR 
SELECT 
	  recibidos.folio_recibidos,
	  to_char(recibidos.fecha_recibido,'DD/MM/YYYY') as fecha_recibido,
	  institucion.nombre_institucion,
	  tipodoc.documento
        FROM recibidos, institucion, tipodoc
	where (pdocumento = recibidos.cod_doc)
	AND (pinstitucion= recibidos.cod_inst)
	AND (pdocumento = tipodoc.cod_doc)
	AND (pinstitucion = institucion.cod_inst)
	AND recibidos.fecha_recibido between pfecha1 and pfecha2
	ORDER BY recibidos.folio_recibidos DESC
	LIMIT 50;
 RETURN $1;
  
END
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION pau_buscar_con_fecha(refcursor, integer, integer, date, date) OWNER TO postgres;
agradecido
  #2 (permalink)  
Antiguo 09/10/2009, 13:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: duda con buscar entre fechas

Como le estas pasando las fechas?

Las variables pfecha1 y pfecha2 que contienen?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 13/10/2009, 07:55
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: duda con buscar entre fechas

las estoy pasando como yyyy/mm/dd
disculpa por no responder en tanto tiempo ya que este fin de semana estaba pendiente de las eliminatorias xD
  #4 (permalink)  
Antiguo 13/10/2009, 08:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: duda con buscar entre fechas

Nos ganaron 4-2 y ya nos eliminarion

Ya no te ayudo.

No mentiras...
Prueba así:

Código sql:
Ver original
  1. CREATE OR REPLACE FUNCTION pau_buscar_con_fecha(refcursor, pdocumento INTEGER, pinstitucion INTEGER, pfecha1 DATE, pfecha2 DATE)
  2.   RETURNS refcursor AS
  3. $BODY$
  4. BEGIN
  5.   OPEN $1 FOR
  6. SELECT
  7.       recibidos.folio_recibidos,
  8.       to_char(recibidos.fecha_recibido,'DD/MM/YYYY') AS fecha_recibido,
  9.       institucion.nombre_institucion,
  10.       tipodoc.documento
  11.         FROM recibidos, institucion, tipodoc
  12.     WHERE (pdocumento = recibidos.cod_doc)
  13.     AND (pinstitucion= recibidos.cod_inst)
  14.     AND (pdocumento = tipodoc.cod_doc)
  15.     AND (pinstitucion = institucion.cod_inst)
  16.     AND recibidos.fecha_recibido BETWEEN to_date(pfecha1,'yyyy/mm/dd')
  17.        AND to_date(pfecha2,'yyyy/mm/dd')
  18.     ORDER BY recibidos.folio_recibidos DESC
  19.     LIMIT 50;
  20.  RETURN $1;
  21.  
  22. END
  23. $BODY$
  24.   LANGUAGE 'plpgsql' VOLATILE
  25.   COST 100;
  26. ALTER FUNCTION pau_buscar_con_fecha(refcursor, INTEGER, INTEGER, DATE, DATE) OWNER TO postgres;

Ten en cuenta que solo estas retornando el cursor abierto y la salida no serán los datos. Tendrías que recorrerlo con fetch para poder ver el contenido del cursor.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 13/10/2009, 09:20
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: duda con buscar entre fechas

disculpa por dejarlos afuera
pero son cosas de futbol nada mas .............
no hay que dejar que las amistades internacionales se quiebren XD

disculpa te hago una consulta .......... es que en el codigo php tengo el resultado de esta consulta en un array
algo asi :
Cita:
$fas_query = "SELECT pau_buscar_fechatodos('funccursor', $pdocumento, $pinstitucion, '$fecha_inicio', '$fecha_fin'); FETCH ALL IN funccursor;";
$res = pg_query(administradorDatos::getConexion(), $fas_query);
$fas_resultados = array();
$numFilas=pg_num_rows($res);
if ($numFilas != 0) {
for ($i = 0; $i < $numFilas; $i++){
$fila = pg_fetch_assoc($res,$i);
array_push($fas_resultados,$fila);
}
}
return $fas_resultados;
como vez me retorna todo en un arreglo $fas_resultado, esoy bien orientado o toy puro perdiendo tiempo con mi logica xD ?

saludos
  #6 (permalink)  
Antiguo 13/10/2009, 09:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: duda con buscar entre fechas

No tengo ni idea secate. No trabajo con php y postgres en este sentido.

Yo retorno desde la función en arreglos los valores que requiero para trabajar. La información a la aplicación ya llega procesada por postgres.

Por ejemplo:
Código sql:
Ver original
  1. OPEN cur FOR SELECT campo FROM tabla;
  2. loop
  3. fetch cur INTO variable; --Esta variable se sobvreescribe en cada ciclo.
  4. EXIT WHEN NOT FOUND;
  5. i = i + 1;
  6. arreglo[i] = variable;
  7. END loop;
  8. --cierra el cursor
  9. close cur;
  10. RETURN arreglo;

Sin embargo, se que existen muchas formas de trabajar con cursores y la tuya puede ser una de ellas.

Esperemos si alguien a trabajado así.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 13/10/2009, 10:31
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: duda con buscar entre fechas

ok , vale muchas gracias por todo :D

seguire cabezeando igual :D

saludos

aioss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:05.