From: | "Javier Carlos" <nediam(at)nediam(dot)com(dot)mx> |
---|---|
To: | "Christian Ortiz" <cpalst(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Duda entre horas |
Date: | 2008-02-20 22:10:20 |
Message-ID: | 3009.201.139.146.210.1203545420.squirrel@mail.nediam.com.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Wed, February 20, 2008 10:38 am, Christian Ortiz wrote:
> Holas
> etoy haciendo un procedimiento almacenado (plgsql), quiero calcular la
> cantidad de horas q hay entre otras dos, solo q la ultima deseo q este en
> numeric
>
> se q puedo hacer esto select (horafin - horainicio), pero quiero
> almacenarlo
> en una variable numeric, como puedo hacer la conversion?
>
> --
> Christian
>
Se me ocurre lo siguiente, son sentencias en SQL, pero fácilmente las
puedes incorporar a tu procedimiento almacenado:
--Suponiendo que lo que quieres es la diferencia en minutos, la columna
diferencia será de tipo numeric (que es lo que tú quieres según entiendo):
ALTER TABLE tabla1 ADD COLUMN aux1 INTERVAL;
UPDATE tabla1 SET aux1=horafin-horainicio;
ALTER TABLE tabla1 ADD COLUMN horas integer;
ALTER TABLE tabla1 ADD COLUMN minutos integer;
ALTER TABLE tabla1 ADD COLUMN segundos integer;
ALTER TABLE tabla1 ADD COLUMN diferencia numeric(6,2);
UPDATE tabla1 SET horas=EXTRACT(HOUR FROM aux1);
UPDATE tabla1 SET minutos=EXTRACT(MINUTE FROM aux1);
UPDATE tabla1 SET segundos=EXTRACT(SECOND FROM aux1);
UPDATE tabla1 SET diferencia = (horas*60) + minutos + (segundos/60::float);
Saludos,
Javier
-------------
Javier Carlos - nediam(at)nediam(dot)com(dot)mx - http://nediam.com.mx
GPG key id: 9DFF022C
GPG key fingerprint: 22E7 FEE0 6611 FA86 891D 1755 4C56 403F 9DFF 022C
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2008-02-21 00:13:10 | RE: Schemas en PostgreSQL |
Previous Message | Douglas Escobar | 2008-02-20 21:10:44 | Modificar valor OID |