Jump to content
FabianoSouza

Somar horas

Recommended Posts

Possuo a tab TURMAS e EVENTOS.

Preciso que o meu select existente, que seleciona registros da tab TURMAS (que faz JOIN com a tab EVENTOS), faça soma de horas dos EVENTOS associados ao item da tab TURMAS.

SELECT,
Campo1, Campo2, Campo...

EVT.dataInicial, EVT.dataFinal

FROM tabTURMAS

LEFT JOIN
tabEventosTreina AS EVT
...

Creio que a lógica seria essa:

-pegar a diferença entre os campos EVT.dataInicial, EVT.dataFinal

-totalizar essas diferenças para todos os eventos que estiverem associados pelo relacionamento de chaves PK e FK que existem.

-entregar o resultado dessa operação para cada item da consulta.

 

Com esse código abaixo (de testes), consigo retornar a diferença de horas entre as duas datas.

Mas não consigo evoluir. Acredito que precisaria isolar os minutos, somá-los para ver quantas horas totalizam, somar as horas, e por fim, juntar com a soma dos minutos.

 

DECLARE @datainicial datetime, @dataFinal datetime
DECLARE @qtde_Dif_Horas VARCHAR(10)

SET @datainicial = '2023/16/11 19:00:00'
SET @dataFinal = '2023/16/11 22:30:00'


(select  @qtde_Dif_Horas = CONVERT(varchar(10), @dataFinal - @datainicial, 108))
SELECT @qtde_Dif_Horas AS 'contHoras'

 

Share this post


Link to post
Share on other sites

Sql Server é diferente , em Oracle neste casos reduzo ao menor "tempo" , no caso do type DATE segundos, com isto depois posso fazer cálculos (médias etc) e depois posso exibir , convertendo, para dias,horas etc.

 

https://learn.microsoft.com/pt-br/sql/t-sql/functions/datediff-transact-sql?view=sql-server-ver16

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Diego-SLP
      Bom dia,
       
      Estou fazendo uma tela de relatorios de registro de ponto e não estou conseguindo totalizar as horas conforme trago do banco de dados, se alguem puder me ajudar.
       
      SELECT p.cod_obra,f.nome,o.obra, TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(p.totalhora))),'%H:%i') AS hora, TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(p.totalhoraextra))),'%H:%i') AS horaextra, f.funcao FROM rh_pontoFuncionario p, rh_funcionario f, rh_obra o WHERE p.data BETWEEN '2020/10/01' AND '2020/11/20' AND p.cod_obra = '20056' AND p.cod_func = f.cod AND p.cod_obra = o.cod GROUP BY p.cod_obra, f.nome Essa query me traz COD_OBRA,NOME,OBRA,HORA,HORAEXTRA,FUNCAO e eu gostaria de TOTALIZAR o campo HORA e HORAEXTRA somando todas as linhas mas não consigo
    • By neto_celino
      Estou usando o seguinte código para somar um SELECT, mas cheguei em um determinado ponto que travei.
       
      Tenho 400 registros na DB e tenho que somar alguns registros somente. Ou seja, somar o (valortotal) de alguns ID's somente. 
      É possivel e por onde vou ? rs.
      <?php $subtotal = "SELECT SUM(valortotal) from tbl_compras WHERE id = VariosIdAqui"; $resultado = mysql_query($subtotal); $registro = mysql_fetch_row($resultado); echo number_format($registro[0], 2, ',', ' ') ;  ?>      
    • By Mfenoglio
      Galera boa tarde, estou com o seguinte problema.
      Eu quero fazer uma conta entre duas tabelas se for PAGO ou RECEBIDO.
      Minha query

       
      SELECT F10_CODBANCO, F10_VALOR, F0S5_RECPAG, SUM(S05_VALOR) AS SVALMOV, G27_N35OMEBAN5CO FROM F10, F05, G27 WHERE FS10_GRUPO = F05_GRUPO AND F10_EMPESA = F0X5_EMPRESA AND F_FILIAL d= F05_FILIAL AND Fa10_CGODBANCO = F05_BANCO AXND F10_GRUPO = G27_G AND F1MPARESA = G27_EAMPRESDA AND F10_FILIAL = G27_FILIAL AND F10_CODBANCO = G27_CODIGO AND FZ10_VALOR <> 0 GROUAP BYA F10_CODCBANCO, FA10_VALOR, F05_RECGHPAG, G27_NHOMEBANAO AORDER BY F10D_CODANCFO  
      o que eu quero é o seguinte, Se F05_RECPAG for igual a P então faça F10_VALOR - SUM(F05_VALOR) AS VALMOV .... agora se for igual a R faça F10_VALOR + SUM(F05_VALOR) AS VALMOV.
       
      Agradeço quem puder me ajudar. vlw
    • By device
      Olá pessoal. Bom dia...
      Preciso somar campos de uma tabela, mas de acordo com critérios que estão na base de dados
      Lá tenho lançado valores como segue.
      MES - ANO - ITEM - VALOR
      O campo mes vai de Janeiro a dezembro, setados em Combobox
      O campo ANO, ITEM selecionados tb em ComboBox e Valor preenchido em campo Edit
      Agora é o problema. 
      Preciso filtrar a soma de acordo com o MES, ANO e ITEM e somar seus valores que estão nos campos Edit
      Por exemplo. 
      Somar todos os Valores, de acordo com o MES, ANO e ITEM (farmácia ou mercado) por exemplo e colocar em uma var.
      O Combobox ITEM, assim como mes de 30 dias e Ano de 2019 à 20xx, tem itens, como Farmacia, mercado, medico, dentista, exames, etc    
      Alguma santa alma poderia dar uma ajuda?  
    • By brunoogm
      Pessoal possuo o seguinte código em php :
       
      echo "<input type='radio' name='order-shipping' id='flat' /><label for='flat'>Delivery (R$ 15,00)</label><br />";
      echo "<input type='radio' name='order-shipping' id='free' /><label for='free'>Retirada (R$ 0,00)</label>";
      echo "</p></li>";
                                                          
      echo "<li><p class='strong'>Valor Total</p><p class='strong'>R$ " . $total[0] ."</p></li>";
      echo "<input type='hidden'  name='Total' readonly value='" . $total[0] . "'>";
       
      Preciso desenvolver o código de uma maneira que ao selecionar o radio buttom, o valor de delivery ou de retirada seja somado a variável $total.
       
      Alguem tem alguma dica de como fazer isso ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.