PostgreSQLでHEX文字列を符号ありの数値に変換する
HEX文字列から数値への変換処理は、PostgreSQLのSQLでもできます。
4Byte(8文字)、8Byte(16文字)
4Byte、8Byteの変換は、下記Stack Overflowで回答がつけられています。
そちらを参照のこと。
stackoverflow.com
2Byte(4文字)
自分がやりたかったのは2ByteのHEX文字列変換だったので、上記回答を参考に、以下のようにすることでできました。
SELECT (((('x' || lpad(hex, 4, '0'))::bit(16))::bit(32)::int4)>>16)::int2::numeric(16,4) as short_val FROM ( VALUES ('1'::text) ,('f') ,('100') ,('7fff') ,('8000') ,('dead') ,('ffff') ) AS t(hex); ||< 結果 >|| short_val ------------ 1 15 256 32767 -32768 -1