Fórum Somar horas #58132
04/04/2007
0
Tô tentando fazer uma query que selecione a soma de um campo que tem como tipo (time).
há possibilidade?
Grato.
Fabiosys
Curtir tópico
+ 0Posts
08/04/2007
Rodolpho123
select campo_hora + 60 from tabela
Lembrando que as unidades de soma refere-se aos [b:689b4ba8e2]segundos[/b:689b4ba8e2] e não [b:689b4ba8e2]minutos[/b:689b4ba8e2]
Gostei + 0
08/04/2007
Fabiosys
Gostei + 0
08/04/2007
Rodolpho123
select extract(hour from campo_hora1) + extract(hour from campo_hora2) from tabela
Gostei + 0
09/04/2007
Cabelo
select SUM((campo_hora - CAST(´00:00:00.000´ AS TIME) / 3600) as D_SOMA_HORAS from Tabela where REGISTROS QUE DESEJA SOMAR
um abraço..
Gostei + 0
11/04/2007
Fabiosys
Gostei + 0
11/04/2007
Cabelo
Pois uso este select aqui e funciona muito bem..
Outra coisa.. qual é a versão do seu firebird???
Gostei + 0
12/04/2007
Fabiosys
Olha...
Uso a versão 2.0.
mas... Acho que o erro não está no firebird e sim no ´select´.
quando eu coloco: select SUM((campo_hora - CAST(´00:00:00.000´ AS TIME) / 3600) as D_SOMA_HORAS... o erro dar na (as D_SOMA_HORAS)
outra coisa o campo é do tipo Time mesmo.
Espero que vc tenha entendido.
Agradeço sua compreensão.
Gostei + 0
13/04/2007
Cabelo
Olha...
Uso a versão 2.0.
mas... Acho que o erro não está no firebird e sim no ´select´.
quando eu coloco: select SUM((campo_hora - CAST(´00:00:00.000´ AS TIME) / 3600) as D_SOMA_HORAS... o erro dar na (as D_SOMA_HORAS)
outra coisa o campo é do tipo Time mesmo.
Espero que vc tenha entendido.
Agradeço sua compreensão.[/quote:f9d2d5b99a]
Colega..
O campo campo_hora, tem que ser do tipo Time mesmo..
Outra coisa..acho qu epostei o sql errado.. :oops:
não é assim
select SUM((campo_hora - CAST(´00:00:00.000´ AS TIME) / 3600) as D_SOMA_HORAS
é assim :
select ((SUM(campo_hora - CAST(´00:00:00.000´ AS TIME))) / 3600) as D_SOMA_HORAS from tabela where COMPARAÇÕES
espero ter ajudado..
Gostei + 0
13/04/2007
Fabiosys
Logo logo digo se deu certo.
mas desde já agradeço.
Gostei + 0
16/04/2007
Fabiosys
Não querendo saber demais tem como o resutado ficar em time também?
é que pelos meus cálculo o resutado não deu certo. Assim como eu posso não ter calculado também certu.
Agradeço sua compreensão.
Até +. :P
Gostei + 0
17/04/2007
Cabelo
Só lembre-se que esta soma está em decimal.... isto é.. a parte inteira são horas e a parte decimal os minutos em DECIMAL... para saber seu resultado em minutos é necessário dividir por 60..
Em Time não dá.. pois o número é maior que 24 horas.. mas você pode transformar em TDateTime, para isso é só formatar como TDateTime usando o cast e o format que desejar.. asdatetime...
Um abraço..
Gostei + 0
20/04/2007
Fabiosys
Qulaquer coisa Estamos por qui.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)