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, 4: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: Re: [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, 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> </mc/compose?to=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> > </mc/compose?to=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> > </mc/compose?to=pgsql-es-ay...@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) > ) > > funcion > CREATE 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. a la orden comenta si e funciono
Siguiendo a Lennin así me quedo: create table pato ( fecha date, anios int2, meses int2, dias int2 ); insert into pato (date('2009-12-31'), 1, 2,3); select * from patowhere (fecha + (anios || ' years')::interval + (meses || ' month')::interval + (dias || ' days')::interval) < current_date
from tabla; Nuevamente gracias.
<<attachment: cagustinla.vcf>>
-- TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda