Преобразуется в битовую строку, затем в целое число.
Пример :
'1110'::bit(4)::integer
-> 14
Хотя у вас были примеры различной длины, и они были после bigint, поэтому вместо этого используйте bit(64)
и заполните ввод нулями, используя функцию lpad
.
lpad('0100011101111000',64,'0')::bit(64)::bigint
Вот полный пример ...
create temp table examples (val varchar(64));
insert into examples values('0100011101111000');
insert into examples values('000001');
insert into examples values('000010');
insert into examples values('000011');
select val,lpad(val,64,'0')::bit(64)::bigint as result from examples;
Результат выбора:
val | result
------------------+--------
0100011101111000 | 18296
000001 | 1
000010 | 2
000011 | 3
(4 rows)