› Fóruns › SQL e PL/SQL › conversao de numero para horas › conversao de numero para horas
Trabalhar com horas sempre é trabalhoso…No dia que o oracle tratar a soma das oracle nosso trabalhar vai ser bem facilitado, mais por enquanto vamos as “alternativas” hehe
olha essa funcao aqui, acho q te ajuda
Function Soma_Horas(Phora1 In Number, Phora2 In Number)
Return Varchar2 Is
Vhora1 Varchar2(4) := Lpad(Phora1, 4, 0);
Vhora2 Varchar2(4) := Lpad(Phora2, 4, 0);
Vsegundos Number;
Vhora Varchar2(10);
Begin
— Transforma tudo em minutos
Vsegundos := ((Substr(Vhora1, 1, 2) * 60) + Substr(Phora1, 2, 2) +
(Substr(Vhora2, 1, 2) * 60) + Substr(Phora1, 2, 2)) * 60;
Vhora := To_Char(Trunc(Vsegundos / 60 / 60), ’09’);
If Round(Vhora) > 24 Then
Vhora := Vhora – 25 || To_Char(Trunc(Mod(Vsegundos, 3600) / 60), ’09’) ||
To_Char(Mod(Mod(Vsegundos, 3600), 60), ’09’);
Else
Vhora := To_Char(Trunc(Vsegundos / 60 / 60), ’09’) ||
To_Char(Trunc(Mod(Vsegundos, 3600) / 60), ’09’) ||
To_Char(Mod(Mod(Vsegundos, 3600), 60), ’09’);
End If;
Return Vhora;
End;