SAP HANA SQL FLOAT TO DATE SAP HANA SQL FLOAT A FECHA
En SAP, algunas fechas se almacenan en tablas como flotantes, como se muestra a continuación para la columna ATFLV
de la tabla AUSP
, que tiene el valor 2.0181218000000000E+07
:
txt
MANDT OBJEK ATINN ATZHL MAFID KLART ADZHL ATWRT ATFLV
100 000000000000004148 9999999400 001 O 023 0000 2.0181218000000000E+07
Sé que se supone que estas son fechas, pero no puedo encontrar ninguna función para transformar. He considerado usar Add_seconds (asumiendo que los valores almacenados están en milisegundos), pero ¿no sé qué fecha base usar, 1/1/1900
o 1/1/1970
?
Agradezco la ayuda.
29.11.2021 EDITAR
Sólo para añadir un poco de contexto, estoy usando HANA DB studio para crear una vista de cálculo que hace esta transformación, usando una función de tabla en HANA SQL.
davy.ai
Es posible que las fechas estén almacenadas en formato de marca de tiempo Unix, que es un valor de punto flotante que representa el número de segundos desde el 1 de enero de 1970. En ese caso, puede utilizar el siguiente código SQL para convertir el valor flotante a formato de fecha:
SELECT TO_DATE('1970-01-01', 'YYYY-MM-DD') + (INTERVAL '1' SECOND * ATFLV) AS DATE_VALUE FROM AUSP
Este código asume que el valor almacenado en ATFLV está en segundos. Si está en milisegundos, puede modificar el código de la siguiente manera:
SELECT TO_DATE('1970-01-01', 'YYYY-MM-DD') + (INTERVAL '1' SECOND * (ATFLV / 1000)) AS DATE_VALUE FROM AUSP
Si las fechas no están en formato de marca de tiempo Unix, es posible que deba consultar la documentación de la aplicación SAP específica para determinar la función de conversión de fecha adecuada que debe utilizarse.