Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 16-07-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
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.

Código SQL [-]
select rcd.fch_cobro,  rcd.fch_apertura_planilla, addhour(rcd.fch_apertura_planilla,  CAST(rve.valor as integer))
from registro_cobros_diarios rcd left outer join recupero_valor_entorno('HORAS_PLANILLA_ABIERTA') rve
    on rcd.fch_cobro = rcd.fch_cobro
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #3  
Antiguo 16-07-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Y qué hace esa udf?
Responder Con Cita
  #4  
Antiguo 16-07-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Smile

Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y qué hace esa udf?
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.
Responder Con Cita
  #5  
Antiguo 16-07-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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í.
Responder Con Cita
  #6  
Antiguo 17-07-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Gracias compañeros, entendí.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 16:03:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi