Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gilberto Jr

Convertendo Segundos Para Hora

Recommended Posts

Bom dia;

 

Estou com um problema que não consigo resolver.

 

Seguinte, eu estou convertendo as horas no banco de dados para segundos com time_to_sec e depois eu faço a soma dos segundos.

 

Beleza, se eu pedir para mostrar esses segundos com o response.write() mostra.

 

Faço a conversão dos segundos para hora e mostro na tela.


set  teste = conn.execute("select sum(time_to_sec(horario_saida)) as hora_saida from registro where matricula='04713' and data between '20140501' and '20140529' and dia_semana not in ('SAB','DOM') and horario_chegada!='00:01:00' and horario_saida!='09:01:00'")
 
set teste2 = conn.execute("select sum(time_to_sec(horario_chegada)) as hora_chegada from registro where matricula='04713' and data between '20140501' and '20140529' and dia_semana not in ('SAB','DOM') and horario_chegada!='00:01:00' and horario_saida!='09:01:00'")
response.Write(teste2("hora_chegada")&" = hora chegada<br />") response.Write(teste("hora_saida")&" = hora saida<br />") '********************************************************* ' Função para conversão de horário ' Autor: hargon ' Propósito: Converter Horário em Segundos ou vice-versa ' Data: 02/06/2008 ' Fórum: Imasters (www.imasters.com.br/forum) '********************************************************* Function converteHorarioSegundos(ByVal horario) Dim segundos, minutos, horas Dim horarioArray segundos = "00" minutos = "00" horas = "00" horarioArray = split(horario,":") If (uBound(horarioArray) >= 0) Then horas = horarioArray(0) End If If (uBound(horarioArray) >= 1) Then minutos = horarioArray(1) End If If (uBound(horarioArray) >= 2) Then segundos = horarioArray(2) End If converteHorarioSegundos = (horas*3600) + (minutos*60) + segundos End Function Function converteSegundosHorario(segundos) Dim minutos, horas horas = int(segundos/3600) minutos = int((segundos mod 3600) / 60) segundos = int((segundos mod 3600) mod 60) if len(minutos) < 2 then : minutos = 0 & minutos : end if if len(segundos) < 2 then : segundos = 0 & segundos : end if converteSegundosHorario = horas & ":" & minutos & ":" & segundos End Function
horariosaida = converteSegundosHorario(cdbl(teste("hora_saida")))
horariochegada = converteSegundosHorario(cdbl(teste2("hora_chegada")))
 
horatrabalhada = DateDiff("h",horariosaida,horariochegada)
 
response.Write(horariosaida&"<br />")
 
response.Write(horariochegada)

Quem desenvolveu essa function foi o @HARGON.

 

Quando eu vou usar o datediff do ASP da erro.

 

Estou fazendo o datediff da seguinte forma

horatrabalhada = DateDiff("h",horariosaida,horariochegada)

Da erro.

 

O erro é o seguinte

Erro de tempo de execução do Microsoft VBScript erro '800a000d'
Tipos incompatíveis: '[string: "158:50:22"]'
/sistemaponto/admin/relatorio.asp, linha 485

E o que tem na linha 485 é

horatrabalhada = DateDiff("h",horariosaida,horariochegada)

Se alguem puder me ajudar eu fico muito grato.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dados estão como date/time ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.