SQL Data Types Reference
SQL data types across PostgreSQL, MySQL, SQLite, and SQL Server.
Reference
Integers
| Range | PostgreSQL | MySQL | SQLite | SQL Server |
|---|---|---|---|---|
| 1 byte (0..255 / -128..127) | — | TINYINT | INTEGER | TINYINT |
| 2 bytes | SMALLINT | SMALLINT | INTEGER | SMALLINT |
| 4 bytes | INTEGER / INT | INT | INTEGER | INT |
| 8 bytes | BIGINT | BIGINT | INTEGER | BIGINT |
| auto-increment | SERIAL / IDENTITY | AUTO_INCREMENT | AUTOINCREMENT | IDENTITY |
Numeric / decimal
| Type | PostgreSQL | MySQL | SQLite | SQL Server |
|---|---|---|---|---|
| Exact decimal | NUMERIC / DECIMAL(p,s) | DECIMAL(p,s) | NUMERIC | DECIMAL(p,s) |
| IEEE float (4 byte) | REAL | FLOAT | REAL | REAL |
| IEEE double (8 byte) | DOUBLE PRECISION | DOUBLE | REAL | FLOAT |
| Money | MONEY | DECIMAL(19,4) by convention | — | MONEY |
Text
| Type | PostgreSQL | MySQL | SQLite | SQL Server |
|---|---|---|---|---|
| Fixed length | CHAR(n) | CHAR(n) | TEXT | CHAR / NCHAR |
| Variable length | VARCHAR(n) | VARCHAR(n) | TEXT | VARCHAR / NVARCHAR |
| Unlimited / CLOB | TEXT | TEXT / LONGTEXT | TEXT | VARCHAR(MAX) |
Date / time
| Type | PostgreSQL | MySQL | SQLite | SQL Server |
|---|---|---|---|---|
| Date | DATE | DATE | TEXT (ISO) | DATE |
| Time | TIME | TIME | TEXT | TIME |
| Timestamp | TIMESTAMP / TIMESTAMPTZ | DATETIME / TIMESTAMP | TEXT / INTEGER | DATETIME2 / DATETIMEOFFSET |
| Duration | INTERVAL | — | — | — |
Other
| Type | PostgreSQL | MySQL | SQLite | SQL Server |
|---|---|---|---|---|
| Boolean | BOOLEAN | TINYINT(1) | INTEGER 0/1 | BIT |
| UUID | UUID | BINARY(16) / CHAR(36) | TEXT | UNIQUEIDENTIFIER |
| JSON | JSON / JSONB | JSON | TEXT | NVARCHAR(MAX) + JSON funcs |
| Binary blob | BYTEA | BLOB / LONGBLOB | BLOB | VARBINARY(MAX) |
| Enum | CREATE TYPE ... AS ENUM | ENUM(...) | — | CHECK constraint |
| Array | type[] | JSON | — | — |
Last updated: