bit(n) bit varying(n) bit(n):数据必须准确匹配长度n,试图存储短些或者长一些的数据都是错误的。 bit varying(n):变长。 使用: 如果明确地把一个位串值转换为bit(n),那么他的右边将被截断,或者在右边补齐零到刚好为n位,而不会抛出任何错误。 示例: postgres=# create table testbit(col1 bit(6),col2 bit varying(8)); CREATE TABLE postgres=# insert into testbit values(B'101',B'00'); ERROR: bit string length 3 does not match type bit(6) postgres=# insert into testbit values(B'1010011',B'00'); ERROR: bit string length 7 does not match type bit(6) postgres=# insert into testbit values(B'101001',B'00'); INSERT 0 1 postgres=# insert into testbit values(B'101001',B'001111100'); ERROR: bit string too long for type bit varying(8) 十进制、十六进制、二进制之间的转换: 十进制-->二进制: postgres=# select 85::bit(8); bit ---------- 01010101 (1 row) 十六进制转二进制: postgres=# select 'xff'::bit(10); bit ------------ 1111111100 (1 row) 十六进制转十进制: postgres=# select 'xff'::bit(8)::int; int4 ------ 255 (1 row) 十进制转十六进制: postgres=# select to_hex(255); to_hex -------- ff (1 row)