Postgres里面有一个内置的10进制转16进制的函数:to_hex(int)/to_hex(bigint)
[postgres@localhost ~]$ psqlPassword: psql (9.1.3)Type "help" for help.postgres=# select to_hex(9); to_hex -------- 9(1 row)postgres=# select to_hex(17); to_hex -------- 11(1 row)postgres=# select to_hex(31); to_hex -------- 1f(1 row)postgres=# select to_hex(255); to_hex -------- ff(1 row)postgres=# select to_hex(256); to_hex -------- 100(1 row)2.16进制转10进制
没有内置的,参考网上的一个例子
postgres=# CREATE FUNCTIONhex_to_dec(in_hex TEXT)RETURNS INTIMMUtable STRICT LANGUAGE sql AS$body$ SELECT CAST(CAST(('x' || CAST( AS text)) AS bit(8)) AS INT);$body$;CREATE FUNCTIONpostgres=# select hex_to_dec('1f'); hex_to_dec ------------ 31(1 row)postgres=# select hex_to_dec('ff'); hex_to_dec ------------ 255(1 row)postgres=# select hex_to_dec('fe'); hex_to_dec ------------ 254(1 row)postgres=# select hex_to_dec('09');hex_to_dec------------ 9(1 row)postgres=# select hex_to_dec('11'); hex_to_dec ------------ 17(1 row)
内置的函数说明,支持输入是int或者bigint类型
to_hex(int/bigint):
CREATE OR REPLACE FUNCTION to_hex(integer) RETURNS text AS 'to_hex32' LANGUAGE internal IMMUtable STRICT COST 1; ALTER FUNCTION to_hex(integer) OWNER TO postgres; COMMENT ON FUNCTION to_hex(integer) IS 'convert int4 number to hex'; CREATE OR REPLACE FUNCTION to_hex(bigint) RETURNS text AS 'to_hex64' LANGUAGE internal IMMUtable STRICT COST 1; ALTER FUNCTION to_hex(bigint) OWNER TO postgres; COMMENT ON FUNCTION to_hex(bigint) IS 'convert int8 number to hex'; |
以上是内存溢出为你收集整理的PostgreSQL的10进制与16进制互转全部内容,希望文章能够帮你解决PostgreSQL的10进制与16进制互转所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)