FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Sumarle a una fecha - hora (timestamp) una cierta cantidad de horas
Buenas, deseo que en una sql me haga la siguiente operación:
A cierta fecha (fecha y hora) le sume una cantidad de horas Ejemplo: 15/07/2010 19:21:00 + 3 (horas) = 15/07/2010 22:21:00 ¿Cómo puedo hacer esto dentro del select? Estuve probando con dateadd y no consigo buenos resultados. Uso Firebird 2.1 gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#2
|
||||
|
||||
Bueno, conseguí solucionar el problema usando una UDF. La verdad es que funciona bien pero sería bueno si hay una forma de hacerlo sin funciones externas.
Bien, gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#3
|
||||
|
||||
¿Y qué hace esa udf?
|
#4
|
||||
|
||||
Simplemente le suma a una variable de tipo TIMESTAMP un valor INTEGER que se considera representa las horas.
addhour(fecha_hora, hora) --> le suma las horas a la fecha. 17/07/2010 20:52 + 3 = 17/07/2010 23:52
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#5
|
||||
|
||||
Es que si a una timestamp (fechahora) le sumas 3, por ejemplo, se lo suma a los días, no a las horas.
Un campo fechahora es un valor como, por ejemplo: 36468,36587491222 La parte entera son los días transcurridos desde 31-12-1899 y la parte decimal corresponde a las horas. Entonces si 1 lo divides entre 24 te da el resultado de lo que ocupa una hora, multiplicado por 3 horas, el resultado sería: 0.125 Por lo tanto, si quieres sumar 3 horas a una fechahora, debes sumar esa cantidad: now + 0.125 = fechahora dentro de 3 horas Según tu ejemplo: 17/07/2010 20:52 + 3 = 17/07/2010 23:52 Escribo de memoria, tendría que confirmarlo, pero creo que es así. |
#6
|
||||
|
||||
Gracias compañeros, entendí.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#7
|
||||
|
||||
Cita:
Dicho sea de paso: desde Firebird 2.1 ya casi no hay necesidad de registrar UDFs... ya que en su enorme mayoría vienen de "fábrica" incorporadas al motor. Distinto es en F1.5 en donde se necesita registrarlas. Las UDFs se estabilizaron durante el desarrollo de 2.x y además, desde (si no me falla la memoria) 2.5 se tiene pensado mejorar este punto y estandarizarlo ofreciendo los medios y herramientas para ello. Saludos, |
#8
|
||||
|
||||
¿Pero hay alguna que sume horas?, ¿cómo lo hace?
|
#9
|
||||
|
||||
Hola amigo, se me ha estado olvidando este hilo. Disculpa.
¿Me lo preguntas a mi? Internamente pues no sabría decir como hace la UDF para sumarle las horas .... de que si estoy seguro es que SI EXISTE ESTA UDF... ¡Esta disponible desde F1 para Windows y desde F1.5 en Linux. Cita:
¿O será que estoy interpretando mal tu pregunta? Me resulta extraño tu comentario amigo, sabiendo que tu conoces mucho de Firebird. Saludos, |
#10
|
||||
|
||||
Bueno, más bien me preguntaba cómo sumará horas esa función, pero ya lo he mirado, suma segundos:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear libro Excel con cierta cantidad de hojas | MAXIUM | Servers | 2 | 05-07-2010 18:53:46 |
filtrar fecha y/o hora en un campo timestamp | CarlosHernandez | Firebird e Interbase | 2 | 18-02-2010 18:09:28 |
concatenar fecha y hora en timestamp | Vlady | SQL | 4 | 21-05-2008 17:51:04 |
Leer una cierta cantidad de caracteres de una archivo. | mcalmanovici | Varios | 9 | 22-01-2008 20:01:24 |
Sacar la hora de un campo TimeStamp | Vlady | Conexión con bases de datos | 1 | 15-02-2007 19:07:07 |
|