![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
![]() 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?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#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í.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#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?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#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 ![]() ![]() Cita:
¿O será que estoy interpretando mal tu pregunta? ![]() Saludos, |
#10
|
||||
|
||||
Bueno, más bien me preguntaba cómo sumará horas esa función, pero ya lo he mirado, suma segundos:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
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 |
![]() |
|