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

 so-sweet天地 发布于 2023-02-06 23:40

Amazon Redshift基于Pargccel,它基于Postgres.根据我的研究,似乎在Postgres中执行十六进制字符串到整数转换的首选方法是通过位字段,如本答案中所述.

对于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,数组,正则表达式函数或集生成函数都不支持...

1 个回答
  • 看起来他们在某些时候为此添加了一个函数:STRTOL

    句法

    STRTOL(num_string,base)

    返回类型

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

    例如

    SELECT strtol('deadbeef', 16);
    

    返回: 3735928559

    2023-02-06 23:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有