aws iot sql question

0

Is there a way to change the hexadecimal number of mqtt payload to decimal in aws iot sql? For example) 07e7 -> 2023, 08 -> 08, 19 -> 25, 13a5 -> 5029, 0064 -> 100 The byte is fixed, and I want to change the hexadecimal number to decimal according to the byte.

preguntada hace 10 meses220 visualizaciones
2 Respuestas
0

Yes, it is possible to convert hexadecimal numbers to decimal in AWS IoT SQL. Here is one way to do it:

Use the CAST function to convert the hexadecimal string to a BIGINT. This will interpret the hex string as a base 16 number and convert it to a decimal integer.

For example:

SELECT CAST('07e7' AS BIGINT) AS decimal_value

Would output:

decimal_value 2023

The CAST function handles strings of different lengths, so you can convert 1 byte hex values like '08' up to 8 byte values like '13a5'.

Some examples:

SELECT CAST('08' AS BIGINT) AS decimal_value

Would output:

decimal_value
8

SELECT CAST('19' AS BIGINT) AS decimal_value

Would output:

decimal_value 25

SELECT CAST('13a5' AS BIGINT) AS decimal_value

Would output:

decimal_value 5029

profile pictureAWS
respondido hace 10 meses
  • Thank you. But error.....

    SqlParseException Unknown data type 'BIGINT' BIGINT) AS decimal_value ---------------------^ at 1:22

0

This conversion from HEX to Decimal didnt work for us. It's not listed in the documentation either, https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-cast

Are you sure it should work?

Dave
respondido hace 3 meses

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas