operaciones con horas

patricia
11 de Septiembre del 2004
debo saber cuantas horas hay en un intervalo de tiempo por ejemplo
entre las 08:00 am y las 02:00 pm me pueden ayudar

jaz
11 de Septiembre del 2004
Hola Patricia,

En Oracle creo que no hay ninguna utilidad que devuelva las horas entre dos fechas, con oracle 9i aparece "interval datatype" que podría servir para lo que necesitas. Pero tanto si tienes 9i como si no, deberias crearte un pequeño programa para obtenerlo.
Una forma sencilla de calcularlo seria tranformar las dos fechas a total de minutos y sobre la diferencia entre los totales obtener las horas transcurridas.
Te envio un ejemplo suponiendo que la horas son las 8:10 y las 14:15, es decir hora1=08:10 y hora2=14:15

1) calculamos minutos de hora1
select (to_number(to_char(hora1,'HH24'))*60)+(to_number(to_char(hora1,'MI')) MINUTOS1
MINUTOS1
--------------
490

2)calculamos minutos de hora2
select (to_number(to_char(hora2,'HH24'))*60)+(to_number(to_char(hora2,'MI')) MINUTOS2
MINUTOS2
--------------
855

3)la diferencia en minutos sería:

DIFERENCIA=MINUTOS2-MINUTOS1
DIFERENCIA=855-490=365

4)a partir del número de minutos obtenido calculamos las horas y los minutos

select floor(365/60) HORAS,mod(365,60) MINUTOS
from dual;
HORAS MINUTOS
--------- -------------
6 5

Como ves han transcurrido 6horas y cinco minutos. Este pequeño ejemplo solo te valdría para horas del mismo día, si fueran de diferentes dias deberías hacer algunos calculos más.
Espero que te ayude. Un saludo.