Uso de datediff sap bone hana

Hola a todos…!! soy nuevo en el foro y en Sap BOne y necesito de ayuda para crear una función en Hana. En esta función pretendo calcular el importe de la mora para un documento de factura de SN cliente. No logro encontrar la función adecuada para calcular la cantidad de atraso en meses. Seguidamente les paso la definición de la funcion que intento crear y tambien el mensaje de error al intentar crear la misma. Agradeceré cualquier referencia. Desde ya muy agradecido.

create function "CALC_MORA_SN" ( IN nDocEntry integer, IN dFecha date, IN cMoneda Nvarchar (3))
returns nMoraCalc integer 
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS
BEGIN

DECLARE nMoraCalc integer;
DECLARE nAtraso integer;
DECLARE nMoraPeriodo integer;

SELECT DATEDIFF(MONTH,CURRENT_DATE,T0."DocDueDate") into nAtraso FROM OINV WHERE T0."DocEntry" = :nDocEntry;

IF :cMoneda = 'Gs' or :cMoneda = 'GS'THEN 
	SELECT T0."U_MORA" into nMoraPeriodo
		FROM "@PERIODO_ESCOLAR" T0 
		WHERE T0."INI_PERIODO" >= :dVence
		AND T0."FIN_PERIODO" <= :dVence;
ELSE
	SELECT T0."U_MORA_USD" into nMoraPeriodo
		FROM "@PERIODO_ESCOLAR" T0 
		WHERE T0."INI_PERIODO" >= :dVence
		AND T0."FIN_PERIODO" <= :dVence;
END IF;	
	
IF DAY(:dFecha) <= 5 THEN
	nAtraso := nAtraso -1;
END IF;

nMoraCalc := nMoraPeriodo * nAtraso;

END;

*** este es el error

Could not execute 'create function "CALC_MORA_SN" ( IN nDocEntry integer, IN dFecha date, IN cMoneda Nvarchar (3)) ...'
SAP DBTech JDBC: [328]: invalid name of function or procedure: DATEDIFF: line 11 col 8 (at pos 273)

Buena tarde Willy,

Estás mezclando sintaxis de SQL con Hana, veo que la función DATEDIFF no es soportada en Hana.

Te dejo un ejemplo de como podrias calcular los meses de una fecha determinada en Hana, espero sea de tu ayuda.

SELECT OINV."DocNum", TO_DATE(OINV."DocDate"), TO_DATE(OINV."DocDueDate"), MONTHS_BETWEEN(CURRENT_DATE, OINV."DocDueDate") FROM OINV OINV WHERE OINV."DocNum" = **NumeroDigitado**

y te muestro un ejemplo de como lo calcula no se si esto es lo que buscabas pero espero orientarte.

1 me gusta

jhernandez;
Agradecido a ti por la gran ayuda que me has dado, con ella he solucionado mi dilema.
Cordial saludo.
Willy

1 me gusta

Pues @Willy ahora marcas la solución, el post que te ha ayudado y posteas la solución final para otros que vengan detrás, la tengan y pasas por Presentaciones
¿es mucho pedir?