¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

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

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 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@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?