Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2013
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
sumar campo de tipo TIMESTAMP

Hola chicos

tengo una tabla el cual tengo un campo de tipo TIMESTAMP que tiene hasta cuatro marcaciones ejemplo:

12/01/2013 08:54:27 a.m.
12/01/2013 11:59:02 a.m. aqui hay una cantidad de minutos

12/01/2013 13:04:27 p.m.
12/01/2013 19:00:27 p.m. aqui hay otra cantidad de minutos

al final de la consulta me mande el total de minutos y luego ponerlo en horas

necesito consultar los minutos que tiene entre el primer registro el segundo registro..

alguien puede ayudarme porfa... es Firebird 2.5


Saludos
Responder Con Cita
  #2  
Antiguo 12-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira los enlaces del final de esta página, seguro que te sirve.

Y recuerda que un campo timestamp (fecha y hora) es un número con decimales, la parte entera son los días transcurridos desde, creo, 1/1/1890 y la parte decimal es la hora del día.
Por lo tanto, para sumar o restar sólo has de hacer eso, sumar o restarlos.
Responder Con Cita
  #3  
Antiguo 12-01-2013
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
Hola

restar dos timestamp * 1440 tendremos los minutos

luedo divides por 60 i tendras el cociente seran las horas y el resto los minutos


Espero que este era el problema

Saludos
Responder Con Cita
  #4  
Antiguo 12-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Proba si te sirve de este modo:
Código SQL [-]
SELECT DATEDIFF(MINUTE FROM CAMPO_1 TO CAMPO_2) AS LAPSO_1,
       DATEDIFF(MINUTE FROM CAMPO_3 TO CAMPO_4) AS LAPSO_2,
       DATEDIFF(MINUTE FROM CAMPO_1 TO CAMPO_2) +
       DATEDIFF(MINUTE FROM CAMPO_3 TO CAMPO_4) AS LAPSO_TOTAL,
       ... 
FROM FROM TU_TABLA
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 12-01-2013 a las 19:49:53. Razón: corrección
Responder Con Cita
  #5  
Antiguo 12-01-2013
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Hola en mi Tabla TMARCACION tengo 3 campos solamente el ID_MARCACION, ID_EMPLEADOS, HORA de tipo TimesTamp

realice esta consulta

Código SQL [-]
 select (EXTRACT(MINUTE from(m.HORA))) from TEMPLEADOS e, TMARCACIONES m where e.ID_EMPLEADOS = m.ID_EMPLEADOS

me manda valores enteros de los minutos el cual la operación seria:

Cita:
8:54:27 hora 1 Entrada

8(0.54/60)*100 =0.90 sin embargo en el sql me da 0

resultado 8.90


12:27:49 hora 2 Salida

12(0.27/60)*100=0.45 igual manera me da 0

Resultado 12.45

12.45 - 8.90 = 3.55 horas
Pero en mi consulta solo me trae un 0
Código SQL [-]
 select (EXTRACT(MINUTE from(m.HORA))/60) from TEMPLEADOS e, TMARCACIONES m where e.ID_EMPLEADOS = m.ID_EMPLEADOS


Saludos

Última edición por novato_erick fecha: 12-01-2013 a las 23:43:55.
Responder Con Cita
  #6  
Antiguo 12-01-2013
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Resolvi el asunto que me devuelve 0 con esta modificacion:

Código SQL [-]
 select cast((EXTRACT(MINUTE from(m.HORA)))*100 as integer)/60 from TEMPLEADOS e, TMARCACIONES m where e.ID_EMPLEADOS = m.ID_EMPLEADOS

sin embargo me devuelve siempre enteros por ejemplo:

Cita:
8:54:27 hora 1 Entrada

8(0.54/60)*100 =0.90 sin embargo en el sql me da 90 necesitando 0.90

resultado 8.90


12:27:49 hora 2 Salida

12(0.27/60)*100=0.45 igual manera me da 45 necesitando 0.45

Resultado 12.45

12.45 - 8.90 = 3.55 horas

Saludos
Responder Con Cita
  #7  
Antiguo 13-01-2013
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Resulto Consulta con decimales firebird e interbase

Hola chicos buscando y buscando hasta hoy domingo tambien encontre una sugerencia aqui mismo por [Al González], Casimiro Notevi, [Delphius], ecfisa: "Nunca dejare de agradecer a ustedes chicos Expertos en Delphi y Firebird por darnos su gran ayuda"

http://www.clubdelphi.com/foros/showthread.php?t=72413

La solucion

Código SQL [-]
 select cast(EXTRACT(MINUTE from(m.HORA)) as double PRECISION)/60 from TEMPLEADOS e, TMARCACIONES m where e.ID_EMPLEADOS = m.ID_EMPLEADOS

dentro del MINUTE from(m.HORA) tenia que ponerle un tipo de valor(DOUBLE PRECISION) en este caso y eso provoco que me mandara el resultado como queria 0.90 era cuestion de leer...

Saludos chicos


novato_erick
Responder Con Cita
  #8  
Antiguo 13-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por novato_erick Ver Mensaje
... era cuestion de leer...
Tú lo has dicho, amigo, y es que realmente el 99% de todas las preguntas que se hacen son repetidas.
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
sumar campo tipo money y guardar en un edit o variable gonza_619 Varios 1 14-09-2010 19:26:18
Como consultar un campo timestamp teniendo un dato de tipo date? CharlesWar SQL 2 18-06-2008 17:51:27
Busqueda en campos tipo timestamp gescoto99 SQL 1 14-07-2005 12:17:16
problemas con campo timestamp Citlalli Firebird e Interbase 14 13-06-2005 18:56:01
Sumar TimeStamp en la sección Where Ismael Firebird e Interbase 3 25-05-2004 19:26:36


La franja horaria es GMT +2. Ahora son las 13:19:16.


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