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.

已提問 10 個月前檢視次數 217 次
2 個答案
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
已回答 10 個月前
  • 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
已回答 3 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南