Estou criando um relatório onde será necessário calcular o tempo que levou para alterar o status. Tenho as colunas DataHoraInclusao e DataHoraAlteracao ambas no formato datetime. Segui o conteúdo do Case de PCP (Produção) tempo onde trata horas no formato hh:mm:ss porém não consegui chegar ao resultado esperado pois não está contando quando passa de um dias, por exemplo:
Retorno correto: DataHoraInclusao = 16/09/2022 14:29:42
DataHoraAlteracao = 16/09/2022 17:04:08
Intervalo de 03:25:34
A medida que utilizei foi a mesma do Case:
A soma de horas em decimal
SomaHorasDECIMAL = SUM(fCRM[Horas])
e a soma destas horas transformando em hh:mm:ss
Soma Hora (hh:mm:ss) =
VAR vHorasDecimal = [SomaHorasDECIMAL]
VAR vHoras = INT ( vHorasDecimal )
VAR vMinutosDecimal = 60 * ( vHorasDecimal - vHoras )
VAR vMinutos = INT ( vMinutosDecimal )
VAR vSegundos = ROUND ( 60 * ( vMinutosDecimal - vMinutos ), 0 )
VAR vHH = IF ( LEN ( vHoras ) = 1, "0" & vHoras, vHoras )
VAR vMM = IF ( LEN ( vMinutos ) = 1, "0" & vMinutos, vMinutos )
VAR vSS = IF ( LEN ( vSegundos ) = 1, "0" & vSegundos, vSegundos )
RETURN
CONVERT ( vHH & vMM & vSS, INTEGER )
O que preciso é que retorne, por exemplo DataHoraInclusao = 13/09/2022 14:31:11
DataHoraAlteracao = 15/09/2022 14:39:13
O Intervalo correto seria de 48:08:02 (hh:mm:ss)
Pergunta
marcelo.faccini
Estou criando um relatório onde será necessário calcular o tempo que levou para alterar o status. Tenho as colunas DataHoraInclusao e DataHoraAlteracao ambas no formato datetime. Segui o conteúdo do Case de PCP (Produção) tempo onde trata horas no formato hh:mm:ss porém não consegui chegar ao resultado esperado pois não está contando quando passa de um dias, por exemplo:
Retorno correto:
DataHoraInclusao = 16/09/2022 14:29:42
DataHoraAlteracao = 16/09/2022 17:04:08
Intervalo de 03:25:34
Retorno incorreto:
DataHoraInclusao = 13/09/2022 14:31:11
DataHoraAlteracao = 15/09/2022 14:19:13
Intervalo de 00:11:58
A medida que utilizei foi a mesma do Case:
A soma de horas em decimal
SomaHorasDECIMAL = SUM(fCRM[Horas])
e a soma destas horas transformando em hh:mm:ss
Soma Hora (hh:mm:ss) =
VAR vHorasDecimal = [SomaHorasDECIMAL]
VAR vHoras = INT ( vHorasDecimal )
VAR vMinutosDecimal = 60 * ( vHorasDecimal - vHoras )
VAR vMinutos = INT ( vMinutosDecimal )
VAR vSegundos = ROUND ( 60 * ( vMinutosDecimal - vMinutos ), 0 )
VAR vHH = IF ( LEN ( vHoras ) = 1, "0" & vHoras, vHoras )
VAR vMM = IF ( LEN ( vMinutos ) = 1, "0" & vMinutos, vMinutos )
VAR vSS = IF ( LEN ( vSegundos ) = 1, "0" & vSegundos, vSegundos )
RETURN
CONVERT ( vHH & vMM & vSS, INTEGER )
O que preciso é que retorne, por exemplo
DataHoraInclusao = 13/09/2022 14:31:11
DataHoraAlteracao = 15/09/2022 14:39:13
O Intervalo correto seria de 48:08:02 (hh:mm:ss)
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora