Ir para conteúdo
Fórum Script Brasil
  • 0

Vba Pra Sql


Marcio Anderson

Pergunta

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.

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...