Postgresql将位变化转换为整数
在postgresql文档中搜索有关将位变量转换为整数的信息 但是找不到任何信息Postgresql将位变化转换为整数,postgresql,bits,Postgresql,Bits,在postgresql文档中搜索有关将位变量转换为整数的信息 但是找不到任何信息 select '011111'::bit(4)::varbit(4)::integer as varbit 感谢您的回复。单向: SELECT b, lpad(b::text, 32, '0')::bit(32)::int FROM ( VALUES ('01'::varbit) ,('011111') ,('111') ) t (b); 结果: b | lpad
select '011111'::bit(4)::varbit(4)::integer as varbit
感谢您的回复。单向:
SELECT b, lpad(b::text, 32, '0')::bit(32)::int
FROM (
VALUES
('01'::varbit)
,('011111')
,('111')
) t (b);
结果:
b | lpad
-------+------
01 | 1
011111 | 31
111 | 7
相关答复:
选择*
从(
值('row1',1::int,12::bit(8)::varbit),
('row2',2::int,23::bit(8)::varbit),
('row3',3::int,34::bit(8)::varbit)
)as T(A,B,C);
如您所见,第一列是varchar
,第二列是int
,第三列是varbit
让我们将第三列转换为int
:
选择C::位(8)::int
从(
值('row1',1::int,12::bit(8)::varbit),
('row2',2::int,23::bit(8)::varbit),
('row3',3::int,34::bit(8)::varbit)
)as T(A,B,C);
==C==
12
23
34
关键是,您必须先将其转换为
bit(n)
,然后才能将bit(n)
转换为varbit
。同样的情况也适用于int
到varbit
谢谢,但我的意图是我有一个类型为bit variable的列,我想将其转换为integer@Pals:演员阵容<代码>::第(32)位在我的初稿中缺失。修复并添加了一个演示。它只适用于32位。如果我有超过32位的信息,那么解决方案是什么?@Pals:你如何将其转换为4字节整数,它不能容纳超过32位的信息?你确实要求过。下一步是64位的bigint
。