miércoles, 29 de abril de 2009

Diferencia entre dos fechas en formato H MIN SEG

Ejemplo práctico:

Creamos una tabla con dos fechas
CREATE TABLE TABLA1 (FECHA_INICIO DATE, FECHA_FIN DATE)

Insertamos dos registros de ejemplo:
Este con la misma fecha
INSERT INTO TABLA1 VALUES (SYSDATE, SYSDATE)

Esta con la fecha actual, y una fecha aleatoria superior
INSERT INTO TABLA1 VALUES (SYSDATE, SYSDATE+0.3568)

Con esta query obtenemos el tiempo entre Fecha_inicio y Fecha_fin
SELECT
FECHA_INICIO, FECHA_FIN,
floor(((FECHA_FIN-FECHA_INICIO)*24*60*60)/3600) || ' H ' || floor((((FECHA_FIN-FECHA_INICIO)*24*60*60) - floor(((FECHA_FIN-FECHA_INICIO)*24*60*60)/3600)*3600)/60) || ' MIN ' || round((((FECHA_FIN-FECHA_INICIO)*24*60*60) - floor(((FECHA_FIN-FECHA_INICIO)*24*60*60)/3600)*3600 - (floor((((FECHA_FIN-FECHA_INICIO)*24*60*60) - floor(((FECHA_FIN-FECHA_INICIO)*24*60*60)/3600)*3600)/60)*60) )) || '
SEG ' TIEMPO
FROM TABLA1


No hay comentarios:

Publicar un comentario