Postgres的10進(jìn)制與16進(jìn)制互相轉(zhuǎn)換 1.10進(jìn)制轉(zhuǎn)16進(jìn)制 Postgres里面有一個(gè)內(nèi)置的10進(jìn)制轉(zhuǎn)16進(jìn)制的函數(shù):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 --------
Postgres的10進(jìn)制與16進(jìn)制互相轉(zhuǎn)換
1.10進(jìn)制轉(zhuǎn)16進(jìn)制
Postgres里面有一個(gè)內(nèi)置的10進(jìn)制轉(zhuǎn)16進(jìn)制的函數(shù):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進(jìn)制轉(zhuǎn)10進(jìn)制
沒(méi)有內(nèi)置的,參考網(wǎng)上的一個(gè)例子
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)
內(nèi)置的函數(shù)說(shuō)明,支持輸入是int或者bigint類(lèi)型
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';
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com