Lennin Caro escribió:
--- On *Thu, 11/19/09, Carlos Agustín López Avila /<cagusti...@gmail.com>/* wrote:From: Carlos Agustín López Avila <cagusti...@gmail.com> Subject: Re: [pgsql-es-ayuda] Incrementar campo de tipo date. To: "PostgreSQL" <pgsql-es-ayuda@postgresql.org> Date: Thursday, November 19, 2009, 3:01 AM Lennin Caro escribió: > > --- On *Thu, 11/19/09, Carlos Agustín López Avila > /<cagusti...@gmail.com </mc/compose?to=cagusti...@gmail.com>>/* wrote: > > > From: Carlos Agustín López Avila <cagusti...@gmail.com </mc/compose?to=cagusti...@gmail.com>> > Subject: [pgsql-es-ayuda] Incrementar campo de tipo date. > To: "PostgreSQL" <pgsql-es-ayuda@postgresql.org </mc/compose?to=pgsql-es-ay...@postgresql.org>> > Date: Thursday, November 19, 2009, 2:23 AM > > Buena noches a todos. > Necesito incrementar un campo de tipo date con cantidades > numericas que representan años, meses y dias. ejemplo > select fecha + 10 años + 2 meses + 4 dias from tabla; > > Gracias. > > -----Inline Attachment Follows----- > > -- > TIP 5: ¿Has leído nuestro extenso FAQ? > http://www.postgresql.org/docs/faqs.FAQ.html > > > con esto puedes incrementar un mes > > select current_date + interval '1 months' > > mas referncias > > http://www.postgresql.org/docs/8.3/interactive/functions-datetime.html > > Perdón pero creo que expuse mal la pregunta. Tengo una entidad con esta definición create table pato ( fecha date, anios int2, mese int2, dias int2 ); y lo que necesito es algo como esto select fecha + anios + meses + dias; Muchas gracias por su apoyo. -----Inline Attachment Follows----- -- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo Esto me funciono tabla CREATE TABLE prueba ( id integer NOT NULL, fecha date, anio integer, mes integer, dia integer, CONSTRAINT prueba_pkey PRIMARY KEY (id) ) funcionCREATE OR REPLACE FUNCTION dateadd2(integer, integer, integer, inputdate date)RETURNS date AS $BODY$ DECLARE strq varchar; dateTemp Date; dprec RECORD;BEGIN strq:='select current_date + interval '''|| $1 || ' year'' + interval '''|| $2 || ' month'' + interval '''|| $3 || ' day'' as fecha' ;FOR dprec IN EXECUTE strq LOOP dateTemp := dprec.fecha; END LOOP; RETURN dateTemp; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE llamada select dateadd2(anio,mes,dia,fecha) from prueba
Muchas, pero muchas gracias.
<<attachment: cagustinla.vcf>>
-- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo