operaciones con horas
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
entre las 08:00 am y las 02:00 pm me pueden ayudar
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.
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.
