¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

Como calcular corretamente a diferença entre dois campos de hora no ABAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 11 Vistas
0
Cargando...

Olá especialistas!

Estou tentando calcular a diferença entre dois campos de hora e o resultado obtido não é o esperado.

Minha consulta é:

select DATEDIFF(hh,U_horas,U_hora) from OINV where DocNum = 236

onde U_horas são 11:00 da manhã e U_hora são 14:00 da tarde

O resultado esperado seria 3 (3 horas) mas obtenho 9600.

Ambos são campos de usuário criados como tipo hora, a hora é definida durante o mesmo dia.

Não tenho certeza se existe outra função além de DATEDIFF que possa me dar a diferença correta.

Desde já, obrigado!

Saudações!

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Opte por melhorar o formato no Crystal Reports.

Usando as seguintes fórmulas:

Para as diferenças em horas

DateDiff("h",CDateTime(Date({Comando.docdate}),Time({Comando.u_horaini})),CDateTime(Date({Comando.docdate}),Time({Comando.u_horafin})))

Para o excedente em minutos

({@nl} mod 3600)/60

Onde @nl é outro campo de fórmula com a diferença em segundos:

(DateDiff("n",CDateTime(Date({Comando.docdate}),Time({Comando.u_horaini})),CDateTime(Date({Comando.docdate}),Time({Comando.u_horafin}))))*60

°Saudações!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Claro, fico feliz que tenha sido útil para você!

Saudações,

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

°Excelente, obrigado! Isso me dá as 3 horas de diferença.

Apenas terei que adicionar um CASE para quando a hora for antes das 10:00 da manhã.

Já que quando a hora tem 3 dígitos (de 1:00 da manhã a 9:59 da manhã) causa conflito.

Imagino que devo trabalhar com a parte do

Cast ( U_Horas As Nvarchar ( 500 )) , 1 , 2 ) as Int

^ ^

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Você está certo, tente com este:

Select Cast ( Substring ( Cast ( U_Horas As Nvarchar ( 500 )), 1 , 2 ) as Int ) - Cast ( Substring ( Cast ( U_Hora As Nvarchar ( 500 )), 1 , 2 ) as int )

from OINV

where DocNum = 236

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeconsultor.com

+1 (305) 285-8622

© 2025 Todos los derechos reservados.

Desarrollado por Prime Consultor

¡Hola! Soy Diana, asesora académica de Prime Consultor, indícame en que Academia SAP estás interesado, saludos!
Hola ¿Buscas Academias SAP?