Data Type Picker

Browse PostgreSQL data types with storage sizes, ranges, and recommendations.

smallintNumeric2 bytes(int2)

Small-range integer.

integerNumeric4 bytes(int, int4)

Standard integer type. The most common choice for integer data.

bigintNumeric8 bytes(int8)

Large-range integer.

numericNumericVariable(decimal)

Exact numeric with user-specified precision. No rounding errors.

realNumeric4 bytes(float4)

Single-precision floating-point number.

double precisionNumeric8 bytes(float8, float)

Double-precision floating-point number.

serialNumeric4 bytes(serial4)

Auto-incrementing 4-byte integer. Shorthand for integer + sequence.

bigserialNumeric8 bytes(serial8)

Auto-incrementing 8-byte integer.

textTextVariable (unlimited)

Variable-length string with no length limit.

varchar(n)TextVariable (up to n chars)(character varying)

Variable-length string with a maximum length constraint.

char(n)TextFixed n bytes(character)

Fixed-length character string, padded with spaces.

timestamp with time zoneDate/Time8 bytes(timestamptz)

Date and time with timezone awareness. Stored as UTC internally.

timestamp without time zoneDate/Time8 bytes(timestamp)

Date and time without timezone. Stores the literal value without UTC conversion.

dateDate/Time4 bytes

Calendar date without time of day.

time with time zoneDate/Time12 bytes(timetz)

Time of day with timezone offset.

time without time zoneDate/Time8 bytes(time)

Time of day without date or timezone.

intervalDate/Time16 bytes

Time span / duration.

booleanBoolean1 byte(bool)

Logical boolean (true/false).

byteaBinaryVariable

Binary data ("byte array").

jsonbJSONVariable

Binary JSON. Supports indexing (GIN), containment operators, and efficient access.

jsonJSONVariable

Text JSON. Stores exact input including whitespace. No indexing support.

uuidUUID16 bytes

Universally unique identifier. Stored as 16 bytes (more compact than text representation).

inetNetwork7 or 19 bytes

IP address (v4 or v6) with optional subnet mask.

cidrNetwork7 or 19 bytes

Network address (CIDR notation). Host bits must be zero.

macaddrNetwork6 bytes

MAC address (6-byte hardware address).

moneyMonetary8 bytes

Currency amount. Fixed fractional precision determined by lc_monetary locale.

int4rangeRangeVariable

Range of 4-byte integers. Supports containment, overlap, and adjacency operators.

tstzrangeRangeVariable

Range of timestamps with timezone. Excellent for scheduling and reservations.

arrayArrayVariable

One-dimensional or multi-dimensional array of any PostgreSQL type.

Want continuous PostgreSQL monitoring?

Start free with one primary or standalone PostgreSQL instance and all its databases. Monitoring, alerts, query insights, index advice, team access and every non-AI feature included. No replicas. No credit card required. New Free connections get seven days of full collection, then reduced sampling. Free and Pro include 30 days of monitoring history.