Data Types
Supported types
CockroachDB supports the following data types. Click a type for more details.
Type | Description | Example |
---|---|---|
ARRAY | A 1-dimensional, 1-indexed, homogeneous array of any non-array data type. | {"sky","road","car"} |
BIT | A string of binary digits (bits). | B'10010101' |
BOOL | A Boolean value. | true |
BYTES | A string of binary characters. | b'\141\061\142\062\143\063' |
COLLATE | The COLLATE feature lets you sort STRING values according to language- and country-specific rules, known as collations. | 'a1b2c3' COLLATE en |
DATE | A date. | DATE '2016-01-25' |
DECIMAL | An exact, fixed-point number. | 1.2345 |
FLOAT | A 64-bit, inexact, floating-point number. | 1.2345 |
INET | An IPv4 or IPv6 address. | 192.168.0.1 |
INT | A signed integer, up to 64 bits. | 12345 |
INTERVAL | A span of time. | INTERVAL '2h30m30s' |
JSONB | JSON (JavaScript Object Notation) data. | '{"first_name": "Lola", "last_name": "Dog", "location": "NYC", "online" : true, "friends" : 547}' |
SERIAL | A pseudo-type that combines an integer type with a DEFAULT expression. | 148591304110702593 |
STRING | A string of Unicode characters. | 'a1b2c3' |
TIME | A time of day in UTC. | TIME '01:23:45.123456' |
TIMESTAMP | A date and time pairing in UTC. | TIMESTAMP '2016-01-25 10:10:10' |
TIMESTAMPTZ | A date and time pairing with a time zone offset from UTC. | TIMESTAMPTZ '2016-01-25 10:10:10-05:00' |
UUID | A 128-bit hexadecimal value. | 7f9c24e8-3b12-4fef-91e0-56a2d5a246ec |
Data type conversions and casts
CockroachDB supports explicit type conversions using the following methods:
<type> 'string literal'
, to convert from the literal representation of a value to a value of that type. For example:DATE '2008-12-21'
,INT '123'
, orBOOL 'true'
.<value>::<data type>
, or its equivalent longer formCAST(<value> AS <data type>)
, which converts an arbitrary expression of one built-in type to another (this is also known as type coercion or "casting"). For example:NOW()::DECIMAL
,VARIANCE(a+2)::INT
.
Tip:
To create constant values, consider using atype annotationinstead of a cast, as it provides more predictable results.
- Other built-in conversion functions when the type is not a SQL type, for example
from_ip()
,to_ip()
to convert IP addresses betweenSTRING
andBYTES
values.
You can find each data type's supported conversion and casting on itsrespective page in its section Supported casting & conversion.