pasar de segundos a hh:mm:ss

From: Miguel <mmiranda(at)123(dot)com(dot)sv>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: pasar de segundos a hh:mm:ss
Date: 2006-02-28 21:33:26
Message-ID: 4404C1A6.4090209@123.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos, alguien tiene algun ejemplo que comparta con la lista de
como pasar una duracion en segundos al formato hh:mm:ss, un amigo me
hizo esta pero algo no esta bien y me devuelve valores extraños, por
ejemplo si la duracion es de 8 minutos (480 segundos), devuelve 7:60, o
sea 7 minutos 60 segundos en lugar de ocho

REATE OR REPLACE FUNCTION formatted_time(float8)
RETURNS "varchar" AS
$BODY$
declare
total_segundos alias for $1;
hora_dec float;
hora int;
minutos_dec float;
minutos int;
segundos_dec float;
segundos int;
cero_horas varchar;
cero_minutos varchar;
cero_segundos varchar;
string_hour varchar;
begin
hora_dec := round(cast(total_segundos/3600.00 as numeric), 5);
hora := floor(hora_dec);
hora_dec := hora_dec - hora;

if length(cast(hora as varchar)) = 1 then
cero_horas := '0';
else
cero_horas := '';
end if;

minutos_dec := round(cast(hora_dec * 60.00 as numeric),5);
minutos := floor(minutos_dec);
minutos_dec := minutos_dec - minutos;

if length(cast(minutos as varchar)) = 1 then
cero_minutos := '0';
else
cero_minutos := '';
end if;

segundos_dec := minutos_dec * 60.00;
segundos := round(cast(segundos_dec as numeric));

if length(cast(segundos as varchar)) = 1 then
cero_segundos := '0';
else
cero_segundos := '';
end if;


select into string_hour cero_horas || cast(hora as varchar) || ':'
|| cero_minutos || cast(minutos as varchar) || ':' || cero_segundos ||
cast(segundos as varchar);

return string_hour;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

saludos

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Gonzalez 2006-02-28 22:07:09 PostgreSQL sobre Dual AMD Opteron 250
Previous Message Joan Manuel Ventura 2006-02-28 20:34:22 pequeño problemita con la hora