# Data Types

## Supported types

CockroachDB supports the following data types. Click a type for more details.

Type | Description | Example | Vectorized Execution
--- | --- | --- | ---
`ARRAY` | A 1-dimensional, 1-indexed, homogeneous array of any non-array data type. | `{"sky","road","car"}` | Not supported
`BIT` | A string of binary digits (bits). | `B'10010101'` | Not supported
`BOOL` | A Boolean value. | `true` | Supported
`BYTES` | A string of binary characters. | `b'\141\061\142\062\143\063'` | Supported
`COLLATE` | The `COLLATE` feature lets you sort `STRING` values according to language- and country-specific rules, known as collations. | `'a1b2c3' COLLATE en` | Not supported
`DATE` | A date. | `DATE '2016-01-25'` | Supported
`DECIMAL` | An exact, fixed-point number. | `1.2345` | Supported
`FLOAT` | A 64-bit, inexact, floating-point number. | `1.2345` | Supported
`INET` | An IPv4 or IPv6 address. | `192.168.0.1` | Not supported
`INT` | A signed integer, up to 64 bits. | `12345` | Supported
`INTERVAL` | A span of time. | `INTERVAL '2h30m30s'` | Supported
`JSONB` | JSON (JavaScript Object Notation) data. | `'{"first_name": "Lola", "last_name": "Dog", "location": "NYC", "online" : true, "friends" : 547}'` | Not supported
`SERIAL` | A pseudo-type that combines an integer type with a `DEFAULT` expression. | `148591304110702593` | Not supported
`STRING` | A string of Unicode characters. | `'a1b2c3'` | Supported
`TIME` `TIMETZ` | `TIME` stores a time of day in UTC. New in v20.1: `TIMETZ` converts `TIME` values with a specified time zone offset from UTC. | `TIME '01:23:45.123456'` `TIMETZ '01:23:45.123456-5:00'` | Not supported
`TIMESTAMP` `TIMESTAMPTZ` | `TIMESTAMP` stores a date and time pairing in UTC. `TIMESTAMPTZ` converts `TIMESTAMP` values with a specified time zone offset from UTC. | `TIMESTAMP '2016-01-25 10:10:10'` `TIMESTAMPTZ '2016-01-25 10:10:10-05:00'` | Supported
`UUID` | A 128-bit hexadecimal value. | `7f9c24e8-3b12-4fef-91e0-56a2d5a246ec` | Supported

## 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'`, or `BOOL 'true'`.

- `<value>::<data type>`, or its equivalent longer form `CAST(<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 a type annotation instead 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 between `STRING` and `BYTES` values.

New in v20.1: CockroachDB also supports implicit casting from string literals to `INT` and `DECIMAL` `ARRAY`s, where appropriate. For an example, see Implicit casting to `INT` and `DECIMAL` `ARRAY`s.

You can find each data type's supported conversion and casting on its respective page in its section Supported casting & conversion.