Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-12-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
diferencia de campos hora y almacenarlo en hora

hola a todos, bien mi pregunta es que tengo dos campos hora y necesito hacer la diferencia entre ellas:
lo que hago es sacar en variables esos 2 campos y luego restarlos, pero me los devuelve en decimal, lo cual necesitaria que qedaran en tipo time, o pasar a time ese valor decimal.
Luego necesitaria saber como con consulta sql sumar un cmapo time y como me devolveria el resultado? gracias a todos
Bueno tambien quiero saber si al usar un hoursbetween entre dos campos time, por ej: 02:30:00 y 3:00:00 , el resultado seria 1? o me agrega los minutos?, como podria hacer para q me devuelva hora,min y seg para almacenarlo en campo time?gracias de nuevo

Última edición por gonza_619 fecha: 03-12-2010 a las 21:36:01.
Responder Con Cita
  #2  
Antiguo 03-12-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Hola amigo(a) gonza_619, creo que debes de ser más específico(a) y detallista al postear tus dudas, por ejemplo debes comentar si estás usando alguna base de datos y en tal caso especificar cuál de todas?(MySQL,MS sql server,Oracle,PostGree,Firebird,etc)
saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 03-12-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
Perdon, estoy usando paradox y necesito hhacer la consulta en sql con query, para sumar campo tipo time, se que directamente no se podria
select sum(hora_entrada) as s from tabla..
como podria solucionarlo? gracias y perdon nuevamente
Responder Con Cita
  #4  
Antiguo 05-12-2010
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 gonza.

Revisá este [ enlace ]. En el, roman pone un código de ejemplo para paradox que podés adaptar a tu caso.

Saludos.
Responder Con Cita
  #5  
Antiguo 05-12-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
bien lo probe funciona muestra los segundos pero no sale el encodetime
Código Delphi [-]
query1.Close;
query1.SQL.Text:='select sum(3600*extract(hour from hora_ent) + 60*extract(minute from hora_ent) + extract(second from hora_ent)) as total from cursohs where curso=1';
query1.Open;
yy:=query1.fieldbyname('total').asinteger;
edit5.Text:=inttostr(yy);
H:=yy div 3600;
M:=(yy mod 3600) div 60;
S:=(yy mod 3600) mod 60;
time:= EncodeTime(H, M, S, 0);
edit5.Text:=timetostr(time);

bien lo quiero mostrar en un edit pero salta error en encodetime= invalid argument to time encode gracias
Responder Con Cita
  #6  
Antiguo 05-12-2010
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 gonza.

Mirá, para sacarme la duda hice una tabla con un solo campo: 'Entrada' de tipo TTimeField.
Luego cargué aleatoriamente las horas con un for y probé el código puesto por roman. No obtuve ningún error.

Esta es la prueba que hice por si te ayuda en algo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  tt,h,m,s: Word;
  TotalEntrada: TTime;
begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('SELECT SUM( ');
  Query1.SQL.Add('3600*EXTRACT(HOUR FROM ENTRADA)+');
  Query1.SQL.Add('60*EXTRACT(MINUTE FROM ENTRADA)+');
  Query1.SQL.Add('EXTRACT(SECOND FROM ENTRADA)) ');
  Query1.SQL.Add('AS TOT_ENTRADA FROM PRUEBA');
  Query1.Open;
  tt:= Query1.FieldByName('TOT_ENTRADA').Value;
  h:=  tt div 3600;
  m:= (tt mod 3600) div 60;
  s:= (tt mod 3600) mod 60;
  TotalEntrada:= EncodeTime(h, m, s,0);
  Caption:= TimeToStr(TotalEntrada);
end;

Saludos.

Última edición por ecfisa fecha: 06-12-2010 a las 00:01:07.
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
seleccionar hora en datetimepicker desde hora especifica gonza_619 Varios 4 21-11-2010 20:42:19
Hora GMT ea6zs Varios 2 14-12-2009 14:15:13
Convertir de hora GMT a hora local marceloalegre Varios 4 16-05-2007 23:35:58
Diferencia de hora entre servidor y estacion local ingel SQL 1 28-12-2006 16:59:41
Campos fecha / hora manu Impresión 2 04-02-2004 14:33:33


La franja horaria es GMT +2. Ahora son las 18:14:45.


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