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

Restar fechas en meses en postgreSQL

Estas en el tema de Restar fechas en meses en postgreSQL en el foro de PostgreSQL en Foros del Web. Necesito restar fechas, es decir quiero hacer la resta de esta forma ej. 2006/10/20 2006/05/10 quiero restar los meses 10-5 ... y tambien los dias ...
  #1 (permalink)  
Antiguo 17/09/2006, 17:33
 
Fecha de Ingreso: junio-2005
Ubicación: Trujillo - Peru
Mensajes: 31
Antigüedad: 19 años, 5 meses
Puntos: 0
Restar fechas en meses en postgreSQL

Necesito restar fechas, es decir quiero hacer la resta de esta forma
ej.
2006/10/20
2006/05/10

quiero restar los meses 10-5 ... y tambien los dias 20-10, pero no se q funcion usar para hacer la resta en un SP.
Estaba intentando con esto, pero no me sale.


CREATE OR REPLACE FUNCTION probar(date)
RETURNS int4 AS
$BODY$
DECLARE
fechapago ALIAS FOR $1;
resta int4;
fi int4;
ff int4;
BEGIN
fi = DATE_TRUNC('month', '2006/05/10');
ff = DATE_TRUNC('month', fechapago);
resta = fi - ff;
RETURN resta;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION probar(date) OWNER TO postgres;

select * from probar('2006/04/05');


Alguien me puede ayudar ?.

Saludos
  #2 (permalink)  
Antiguo 18/09/2006, 07:02
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 21 años, 1 mes
Puntos: 0
lee un poco el manual:
http://www.postgresql.org/docs/8.0/i...-datetime.html
  #3 (permalink)  
Antiguo 19/09/2006, 09:01
 
Fecha de Ingreso: junio-2005
Ubicación: Trujillo - Peru
Mensajes: 31
Antigüedad: 19 años, 5 meses
Puntos: 0
probe con esto y sale error

Primero probe la funcion y es correcta

select EXTRACT(DAY FROM DATE '2006-05-22')- EXTRACT(DAY FROM DATE '2006-05-18');


ejecute esto y sale 4 .. q es la diferencia de dias ... sin embargo cuando lo pongo en un procedimiento de esta forma

dif_dias = extract(day from date $4) - extract(day from date minfecvenc);

donde $4 es la variable q ingresa y minfecvenc es producto de esta consulta:

select into minfecvenc min(crocuo_fecvencimiento) from cronogramaxcuota where fic_codigo=ficha and crocuo_estado='f' and crocuo_numero='0';

sale el siguiente error
Query failed: ERROR: syntax error at or near "$1" CONTEXT: PL/pgSQL function "f_inserta_pago_intranet" line 50 at assignment in

Espero puedan ayudarme
  #4 (permalink)  
Antiguo 19/09/2006, 10:56
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 21 años, 1 mes
Puntos: 0
una pregunta... que necesitas sacar la cantidad de dias entre una fecha y otra ?¿
porque seria mas sencillo:
select date '2006-10-20' - date '2006-05-10';
y te devuelve 163
  #5 (permalink)  
Antiguo 11/04/2007, 11:55
Avatar de richard_site  
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Restar fechas en meses en postgreSQL

Código:
SELECT age(timestamp '2006-10-20', timestamp '2006-05-10')
devuelve

Código:
age
------------
5 mons 10 days

Última edición por richard_site; 11/04/2007 a las 12:05
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 09:20.