当前位置: 首页 > 面试题库 >

十六进制字符串到Amazon Redshift中的整数转换

陈扬
2023-03-14
问题内容

Amazon
Redshift基于基于Postgres的ParAccel。从我的研究看来,在Postgres中html" target="_blank">执行十六进制字符串到整数转换的首选方法是通过位字段,如本答案所述。

对于bigint,这将是:

select ('x'||lpad('123456789abcdef',16,'0'))::bit(64)::bigint

不幸的是,这在Redshift上失败,原因是:

ERROR: cannot cast type text to bit [SQL State=42846]

还有哪些其他方法可以在Postgres
8.1ish中执行此转换(接近Redshift的兼容性级别)?Redshift不支持UDF,数组,正则表达式函数或集合生成函数也不支持UDF …


问题答案:

看起来他们为此添加了一个功能:STRTOL

句法

STRTOL(num_string,base)

返回类型

BIGINT。如果num_string为null,则返回NULL。

例如

SELECT strtol('deadbeef', 16);

返回值: 3735928559



 类似资料:
  • 问题内容: 我写了一些代码将十六进制显示字符串转换为十进制整数。但是,当输入类似100a或625b(带有字母的东西)时,我得到了这样的错误: java.lang.NumberFormatException:对于输入字符串:java.lang.Integer.parseInt(未知源)处的java.lang.NumberFormatException.forInputString(未知源)处为“ 1

  • 我正在写一个Rust程序,读取I2C总线并保存数据。当我读取I2C总线时,我会得到十六进制值,比如,,等等。 现在,我只能将其作为字符串处理并按原样保存。有没有办法把它解析成一个整数?它有内置的功能吗?

  • 我有十六进制字符串,例如“0x103E”,我想将其转换为整数。意思是to我尝试了但它给出了数字格式异常。我如何实现这一点?

  • 问题内容: 我在ex中有整数。16,我正在尝试将此数字转换为十六进制数字。我试图通过使用十六进制函数来实现此目的,但是每当您向十六进制函数提供整数时,它都会返回十六进制数字的字符串表示形式, 有人可以告诉我如何将字符串格式的十六进制数字转换为简单的十六进制数字。 谢谢!! 问题答案:

  • 本文向大家介绍C++实现十六进制字符串转换为十进制整数的方法,包括了C++实现十六进制字符串转换为十进制整数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++实现十六进制字符串转换为十进制整数的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C++程序设计有所帮助。

  • 问题内容: 我想将十六进制字符串转换为二进制字符串。例如,十六进制2是0010。下面是代码: 但是,这仅适用于十六进制0-9;它不适用于十六进制A-F,因为它使用。谁能增强它? 问题答案: 您需要告诉Java int是十六进制的,如下所示: