| |||
Oracle y horas Hola a todos compañeros programadores me podrias ayudar de como puedo insertar solamenta la hora en oracle 9i.muchas gracias
__________________ vuestro amigo franju |
| ||||
Respuesta: Oracle y horas Hola jachguate, Como bien lo dijiste, se trata de aritmética de horas. Te cuento mi problema: Necesito realizar operaciones aritméticas con datos de hora en la base express de Oracle (sumar horas y minutos) , nada difícil, sólo que no se me ocurre cómo hacerlo. Por ejemplo, tengo que poner que trabajé 1:40 hs en un determinado proyecto y 1:30 en otro. El problema es que la suma de estos valores se hace a través de NUMBER y me muestra 2 horas y 70 minutos en vez de 3 horas y 10 minutos Con Apex Express no es complicada la suma de las horas porque son valores numéricos redondos, pero me matan los minutos. Entonces me surge la necesidad de tratar los valores como datos de hora exclusivamente. Se me ocurrió probar con datos TIMESTAMP pero éste es básicamente una extensión de DATE y no creo que se ajuste a mi necesidad. Agradezco cualquier sugerencia al respecto. Saludos! |
| ||||
Respuesta: Oracle y horas Cita:
Iniciado por SangrePura Hola jachguate, Como bien lo dijiste, se trata de aritmética de horas. Te cuento mi problema: Necesito realizar operaciones aritméticas con datos de hora en la base express de Oracle (sumar horas y minutos) , nada difícil, sólo que no se me ocurre cómo hacerlo. Por ejemplo, tengo que poner que trabajé 1:40 hs en un determinado proyecto y 1:30 en otro. El problema es que la suma de estos valores se hace a través de NUMBER y me muestra 2 horas y 70 minutos en vez de 3 horas y 10 minutos Con Apex Express no es complicada la suma de las horas porque son valores numéricos redondos, pero me matan los minutos. Entonces me surge la necesidad de tratar los valores como datos de hora exclusivamente. Se me ocurrió probar con datos TIMESTAMP pero éste es básicamente una extensión de DATE y no creo que se ajuste a mi necesidad. Agradezco cualquier sugerencia al respecto. Saludos! En tu caso, si usas date o timestamp, seguro te encontrarás con algunos otros casos interesantes. Por ejemplo, si en un proyecto trabajaste 15:30 horas y en otro 10:00 horas, la suma es 25:30 horas, o una fecha x a la 1:30 AM? Si usas mi sugerencia anterior (de hace 6 años!!) y almacenas fracciones de día o fracciones de hora, podrás hacer aritmética tranquilamente y luego "convertir" solo para presentar los datos. Por ejemplo, si almacenas 1.5 en lugar de 1:30 hrs, y 1.66666666667 en lugar de 1:40, la suma te dará 3.16666666667, lo que puede convertirse nuevamente a 3:10 con relativa facilidad. por ejemplo:
Código:
La conversión al "formato de visualización" podrías hacerla no solo en un query, sino a nivel del front-end que uses para mostrar los datos. De la misma forma, convertir los datos ingresador por el usuario en decimal antes de llevarlos a la BD.select to_char(trunc(horas), '00')||':'||to_char((horas-trunc(horas))*60, 'FM00') from (select 1.5 + 1.6666666666666666666666 horas from dual); Un saludo. |
| ||||
Respuesta: Oracle y horas jachguate, muchas gracias por tu tiempo, el ejemplo está excelente... y sí, 6 años es bastante jaja pero bueno el tema del foro se ajustaba al pie de la letra con mi problema así que no lo dudé y comenté. una vez más agradecerte por la ayuda. Un saludo, |