SQL Data Types Reference

SQL data types across PostgreSQL, MySQL, SQLite, and SQL Server.

Reference Reference Updated Apr 19, 2026
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: