加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL的10进制与16进制互转

发布时间:2020-12-13 17:38:51 所属栏目:百科 来源:网络整理
导读:1.10进制转16进制 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(1
1.10进制转16进制
Postgres里面有一个内置的10进制转16进制的函数:to_hex(int)/to_hex(bigint)
[postgres@localhost ~]$ psql
Password: 
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 FUNCTION
hex_to_dec(in_hex TEXT)
RETURNS INT
IMMUTABLE STRICT LANGUAGE sql AS
$body$
  SELECT CAST(CAST(('x' || CAST($1 AS text)) AS bit(8)) AS INT);
$body$;
CREATE FUNCTION
postgres=# 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';
参考:http://postgresql.1045698.n5.nabble.com/Hex-to-Dec-Conversion-td3218223.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读