Sobre Resta de Fechas
Hola Foro, como estan ? Necesito restar 2 fechas, en realidad dos horas, me devuelve una fraccion numerica y no me deja volver a convertirlo a fecha (horas y minutos) he estado buscando en la ayuda y me dice que la resta no esta permitida en 2 tipos de datos fecha, entonces que puedo hacer, que me recomiendan. Tiene que haber alguna forma de convertir los datos restar y volver a convertir, o algo parecido, pero ya he probado todas las funciones de conversion. Espero su atencion. Agradecida de antemano.
El numero que te queda, es una cantidad expresada en dÃas.
Yo lo que he hecho es convertir este numero a minutos o a segundos.
En el siguiente ejemplo resto dos fechas que tienen de diferencia 5 minutos. Y el resultado lo doy en minutos.
select (to_date('01/01/2005 10:30:00','DD/MM/YYYY HH:MI:SS') - to_date('01/01/2005 10:25:00','DD/MM/YYYY HH:MI:SS')) * 24*60
from dual
/
Yo lo que he hecho es convertir este numero a minutos o a segundos.
En el siguiente ejemplo resto dos fechas que tienen de diferencia 5 minutos. Y el resultado lo doy en minutos.
select (to_date('01/01/2005 10:30:00','DD/MM/YYYY HH:MI:SS') - to_date('01/01/2005 10:25:00','DD/MM/YYYY HH:MI:SS')) * 24*60
from dual
/
yo pasarÃa las fechas a formato segundos (\'SSSSS\')
y las restarÃa. El resultado se obtendrá en segundos,
que se pueden pasar a minutos u horas, ya que no podrás obtener un formato fecha del resultado.
por ejemplo :
select trunc((resta / 60)) as minutos, mod(resta,60) as segundos
from(
select to_number(to_char(to_date(\'13:13:40\',\'hh24:mi:ss\'), \'SSSSS\'))
-
to_number(to_char(to_date(\'13:12:10\',\'hh24:mi:ss\'), \'SSSSS\'))
as resta
from dual);
y las restarÃa. El resultado se obtendrá en segundos,
que se pueden pasar a minutos u horas, ya que no podrás obtener un formato fecha del resultado.
por ejemplo :
select trunc((resta / 60)) as minutos, mod(resta,60) as segundos
from(
select to_number(to_char(to_date(\'13:13:40\',\'hh24:mi:ss\'), \'SSSSS\'))
-
to_number(to_char(to_date(\'13:12:10\',\'hh24:mi:ss\'), \'SSSSS\'))
as resta
from dual);
