【发布时间】:2018-05-23 14:15:40
【问题描述】:
我正在尝试使用 presto 将十六进制字符串(以“0x”开头)转换为整数值。例如0x100 到 256。我的十六进制字符串称为 msg_id。
我试着用这个-
from_hex(substr(msg_id,3))
但我遇到了一个问题,因为 from_hex 期望偶数个十六进制数字(0100 而不是 100)。
我决定尝试使用if 语句来解决这个问题,所以我尝试了这个:
if(length(msg_id)%2=0, from_hex(substr(msg_id,3)))
(稍后会处理奇数位数的情况)
但是 - from_hex 的结果是 varbinary 类型,具有不同数量的字节。我想将它转换为整数或任何其他数字类型,但我找不到办法。
有什么想法吗?我会很感激的...
【问题讨论】: