Por ejemplo:
2.0 | representa | 2:00 |
1.5 | 1:30 | |
1.2 | 1:12 |
El proceso de modificación se llevó a cabo en dos partes: 1) Convertir la diferencia de fechas al formato hh:mi, y 2) Asegurar que la los minutos representados por un dígito (1 a 9) se muestren con un cero al principio (01...09).
CONVERTIR LA DIFERENCIA DE FECHAS AL FORMATO HH24:MI
Voy a llamar a la fecha inicial como start_date y a la fecha final como end_date, ambas en el formato DD-MON-YY HH24:MI.
Como punto de partida, es importante tener en cuenta que al realizar la diferencia entre dos fechas en Oracle 11g,
el resultado entregado es el equivalente en días:
En primer lugar multiplicamos la diferencia por 24 para obtener el número de horas correspondiente
(también redondeamos a dos dígitos decimales el resultado):
Ahora separamos la parte entera del resultado anterior como horas y a los dos dígitos decimales los convertimos a su equivalente en minutos:
Podemos ir un paso más allá y solamente tomar la parte entera de la última columna (ya que representa un grado de precisión suficiente) para luego convertir el nuevo resultado a formato de minutos (anteponiendo un cero en el caso de que el número de minutos esté entre 1 y 9).
ASEGURAR QUE LA CANTIDAD DE MINUTOS SE MUESTRE EN EL FORMATO mi
La parte entera de las horas se concatena con el equivalente de la parte decimal en minutos mediante el operador "||" utilizando como separador los dos puntos ":".
Documentación de las funciones utilizadas:
Gracias! Me ha venido de perlas!!
ResponderEliminarExcelente ayuda, gracias!
ResponderEliminarExcelente!!! me sirvió mucho.
ResponderEliminarmuy claro, excelente
ResponderEliminarExcelente. Muchas gracias por el aporte, me ha servido mucho.
ResponderEliminarSaludos