es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Otro ejemplo:
enter image description here

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.

Tags:  , , , ,

Answer

  1. Avatar for 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.

Comments are closed.