Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/09/2010, 07:39
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: ¿Cómo implementar aritmética de hora con ORACLE?

Sangre pura... efectivamente se puede hacer con numtodsinterval

Mira el ejemplo

Código SQL:
Ver original
  1. SQL> CREATE TABLE trabajo(horas NUMBER(2),minutos NUMBER(2),proyecto VARCHAR2(15));
  2.  
  3. Tabla creada.
  4.  
  5. SQL> INSERT INTO trabajo (horas, minutos, proyecto)
  6. VALUES (1, 40, 'proyecto_1');  2
  7.  
  8. 1 fila creada.
  9.  
  10. SQL> INSERT INTO trabajo (horas, minutos, proyecto)
  11. VALUES (1, 30, 'proyecto_2');  2
  12.  
  13. 1 fila creada.
  14.  
  15. SQL> COMMIT;
  16.  
  17. Confirmación terminada.
  18.  
  19. SQL> SELECT
  20. NUMTODSINTERVAL(SUM(horas*3600)+SUM(minutos*60),'SECOND') tiempo
  21. FROM trabajo;  2    3
  22.  
  23. TIEMPO
  24. ---------------------------------------------------------------------------
  25. +000000000 03:10:00.000000000

Si quieres darle un poco de formato para eliminar los ceros y los caracteres que no te sirven, puedes utilizar SUBSTR

Código SQL:
Ver original
  1. SQL> SELECT
  2. SUBSTR(NUMTODSINTERVAL(SUM(horas*3600)+SUM(minutos*60),'SECOND'),11,6) tiempo
  3. FROM trabajo;  2    3
  4.  
  5. TIEMPO
  6. ------------------------
  7.  03:10

Nos cuentas como te va.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming