我可以帮您将HTML使用的十六进制字符串转换为
bigint
,然后通过使用PL/pgSQL编写的函数在Postgres中将其转换为单独的R、G和B值。您可以像这样将字符串解码为bytea
:hex bytea := decode(hex, 'hex');
在具有固定值的查询中,这种方法非常好用:
select ( array[ (cast(x'ffaa33' as bigint) >> 16) % 256,
(cast(x'ffaa33' as bigint) >> 8) % 256,
cast(x'ffaa33' as bigint) % 256 ] )
但是我无法将它们结合起来,例如将'ffaa33'作为参数传递。
有人有更好的想法吗?我正在使用 PostgreSQL 9.1?
to_hex(bigint)
函数。 - Daniel Vérité