Re: Duda entre horas

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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