Olá. Tenho um código que faço via VBA que é o seguinte:
Function JANVLX(DtI As Variant, DtF As Variant) As Variant
Dim TEMPO, ciclo As Double
TEMPO = Round((DtF - DtI) * 24 * 60, 0)
T = TimeSerial(Hour(DtI), Minute(DtI), 0)
ciclo = 0
For a = 1 To TEMPO
If T < "08:00:00" Or T > "20:00:00" Then
ciclo = ciclo
Else
ciclo = ciclo + 1
End If
If T = "23:59:00" Then
a = a + 2
T = TimeSerial(0, 0, 0)
End If
T = T + TimeSerial(0, 1, 0)
Next a
JANVLX = ciclo
Exit Function
End Function
Esse código calcula o tempo entre dois campos de um mesmo registro: hora_entrada e hora_saida
O tempo entre os dois não poderá contar entre 20:00hrs e 8:00hrs do dia seguinte (o mesmo acumulando-se várias datas do intervalo).
Exemplo: de 12/03/2011 19:00 até 13/03/2011 09:00 só deve contar 2:00hrs, pois entre 12/03/2011 20:00 e 13/03/2011 08:00 ficará zerado.
Sei que é possível gerar isso via código SQL, mas não estou conseguindo... :unsure: (case, while, if..) e não sei se é melhor criar a função ou se é melhor alocar dentro do select.
Pergunta
Marcio Anderson
Olá. Tenho um código que faço via VBA que é o seguinte:
Esse código calcula o tempo entre dois campos de um mesmo registro: hora_entrada e hora_saida
O tempo entre os dois não poderá contar entre 20:00hrs e 8:00hrs do dia seguinte (o mesmo acumulando-se várias datas do intervalo).
Exemplo: de 12/03/2011 19:00 até 13/03/2011 09:00 só deve contar 2:00hrs, pois entre 12/03/2011 20:00 e 13/03/2011 08:00 ficará zerado.
Sei que é possível gerar isso via código SQL, mas não estou conseguindo... :unsure: (case, while, if..) e não sei se é melhor criar a função ou se é melhor alocar dentro do select.
Quero chamar o campo resultante de "tempo".
Vocês podem me ajudar!?
Desde já, agradeço!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.