SOMAR HORA EM ACCESS

LOGANL 01/05/2013 01:20:21
#422767
Boa noite galera,

Está ocorrendo o seguinte, tenho um banco Access (2013) e preciso realizar a soma de todos os registros de um campo no formato Data-Hora (Hora abreviada). Porém, a soma não está saindo de forma correta.

Gostaria de saber como eu posso fazer para realizar esta soma, como por exemplo: 04:06 + 06:15 = 10:21, já que um simples SUM(horEntrada) não está funcionando.

Obrigado.
PROFESSOR 03/05/2013 16:54:36
#422912
Um campo do tipo Data/Hora não é uma representação de um valor, mas sim de um momento, de um instante, de forma que, mesmo quando você formata como hora abreviada, o campo ainda armazena a data e a hora.
Desse modo, a Sum não funcionaria, pois não se trata de uma função para data/hora, como DateAdd, por exemplo.
Se o que você precisa é somar a quantidade de horas e / ou minutos, o tipo de dados adequado é o inteiro, ao invés de um Date/Time.
FELLIPEASSIS 03/05/2013 20:51:41
#422929
teria que converter para decimal, mais no seu caso vc queria pesquisar entre horas e somar valor total entre elas?
LOGANL 13/05/2013 11:43:14
#423374
No caso eu não quero saber o valor entre as horas, somente somar mesmo, como por exemplo: 01:10 + 01:55 = 03:05

Tentei fazer a soma transformando o campo em inteiro mas também não consegui. Alguém teria mais alguma ideia?
OMAR2011 13/05/2013 13:15:49
#423378
Qual programa está usando?
LOGANL 13/05/2013 14:04:09
#423380
Citação:

:
Qual programa está usando?


VB6 com Access 2013.
JOEYRFS 13/05/2013 14:31:45
#423382
transforma em minutos, soma os minutos e depois transforma em horário normal.
NETMANIA 13/05/2013 14:38:50
#423383
Eu tive um problema parecido com o seu, no meu caso eu convertia o tempo em segundos, efetuava a soma e depois voltava ele para o formato hora:minuto:segundo, com isso, era mais fácil de poder calcular e também fazer comparação se um determinado caso tinha estourado ou não o prazo (usando como unidade o tempo e segundos).
LOGANL 13/05/2013 15:00:33
#423384
Citação:

:
transforma em minutos, soma os minutos e depois transforma em horário normal.



Citação:

:
Eu tive um problema parecido com o seu, no meu caso eu convertia o tempo em segundos, efetuava a soma e depois voltava ele para o formato hora:minuto:segundo, com isso, era mais fácil de poder calcular e também fazer comparação se um determinado caso tinha estourado ou não o prazo (usando como unidade o tempo e segundos).



Como eu posso fazer isso?
OMAR2011 13/05/2013 15:20:34
#423386
Este é um exemplo que testei agora e funcionou. O [ô]Option Explicit tem que estar deste jeito isto por causa de variasvéis
não declarada,ai você faz tudo direito

Private Sub Command6_Click()
Set Cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
Dim hours As Long, minutes As Long
Dim totalhours As Long, totalminutes As Long
Dim interval As Variant
interval = #12:00:00 AM#
[ô]With Adodc1
Cnn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\Tabelas2.mdb;Persist Security Info=False[Ô]

rst.Open [Ô]Select * From Horas[Ô], Cnn

While Not rst.EOF
interval = interval + rst![HorSaEn]
rst.MoveNext
Wend
totalhours = Int(CSng(interval * 24))
totalminutes = Int(CSng(interval * 1440))
totalseconds = Int(CSng(interval * 86400))
hours = totalhours Mod 24
minutes = totalminutes Mod 60

Text1.Text = totalhours & [Ô] hours and [Ô] & minutes & [Ô] minutes[Ô]
Text2.Text = totalhours & [Ô]:[Ô] & Format(minutes, [Ô]00[Ô]) & [Ô]:[Ô] & Format(seconds, [Ô]00[Ô])
rst.Close
End Sub
Faça seu login para responder