相关疑难解决方法(0)

将文本表示中的十六进制转换为十进制数

我试图使用PostgreSQL 9.1将十六进制转换为十进制

使用此查询:

SELECT to_number('DEADBEEF', 'FMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR:  invalid input syntax for type numeric: " "
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

postgresql hex types casting

33
推荐指数
5
解决办法
4万
查看次数

在Postgres中将十六进制字符串转换为bigint

我想将HTML使用的十六进制字符串转换为a bigint,然后通过PL/pgSQL编写的函数将其转换为Postgres中单独的R,G和B值.

我可以bytea像这样解码字符串:

hex bytea := decode(hex, 'hex');
Run Code Online (Sandbox Code Playgroud)

在具有固定值的查询中,这就像一个美女:

select ( array[ (cast(x'ffaa33' as bigint) >> 16) % 256,
                (cast(x'ffaa33' as bigint) >> 8) % 256,
                 cast(x'ffaa33' as bigint) % 256 ] )
Run Code Online (Sandbox Code Playgroud)

但我不能将两者放在一起,传递 - 例如'ffaa33'作为参数.

谁有更好的主意?我正在使用PosgreSQL 9.1?

sql postgresql hex postgresql-9.1

4
推荐指数
1
解决办法
8093
查看次数

标签 统计

hex ×2

postgresql ×2

casting ×1

postgresql-9.1 ×1

sql ×1

types ×1