In SQL Server, the BIT data type stores 0, 1 or NULL values.
In PostgreSQL, you can use the BOOLEAN data type but you need to cast 0 and 1 values, and output representation for BOOLEAN is t and f.  
SQL Server:
-- Sample table CREATE TABLE specs ( data BIT ); -- Inserting sample values INSERT INTO specs VALUES (0); INSERT INTO specs VALUES (1); -- SQL Server allows using 'FALSE' and 'TRUE' string literals INSERT INTO specs VALUES ('FALSE'); INSERT INTO specs VALUES ('TRUE'); SELECT * FROM specs;
Result:
| data | 
| 0 | 
| 1 | 
| 0 | 
| 1 | 
PostgreSQL:
-- Sample table CREATE TABLE specs ( data BOOLEAN ); -- Inserting sample values INSERT INTO specs VALUES (0); /* ERROR: column "data" is of type boolean but expression is of type integer */ INSERT INTO specs VALUES (0::BOOLEAN); /* Ok */ INSERT INTO specs VALUES (1); /* ERROR: column "data" is of type boolean but expression is of type integer */ INSERT INTO specs VALUES (1::BOOLEAN); /* Ok */ -- PostgreSQL allows using 'FALSE' and 'TRUE' string literals as well as FALSE and TRUE keywords INSERT INTO specs VALUES ('FALSE'); INSERT INTO specs VALUES (TRUE); SELECT * FROM specs;
Result:
| data | 
| t | 
| f | 
| t | 
| f | 
Note that the output result in PostgreSQL contains values t and f rather than 1 and 0.  
For more information, see SQL Server to PostgreSQL Migration.