SQL data types
InfluxDB Clustered uses the Apache Arrow DataFusion implementation of SQL. Data types define the type of values that can be stored in table columns. In InfluxDB’s SQL implementation, a measurement is structured as a table, and tags, fields and timestamps are exposed as columns.
SQL and Arrow data types
In SQL, each column, expression, and parameter has a data type. A data type is an attribute that specifies the type of data that the object can hold. DataFusion uses the Arrow type system for query execution. All SQL types are mapped to Arrow data types.
Both SQL and Arrow data types play an important role in how data is operated on during query execution and returned in query results.
When performing casting operations, cast to the SQL data type unless you use
arrow_cast()
to cast to a specific Arrow type.
Names and identifiers in SQL are case-insensitive by default. For example:
SELECT
'99'::BIGINT,
'2019-09-18T00:00:00Z'::timestamp
- String types
- Numeric types
- Date and time data types
- Boolean types
- Unsupported SQL types
- Data types compatible with parameters
String types
SQL data type | Arrow data type | Description |
---|---|---|
STRING | UTF8 | Character string, variable-length |
CHAR | UTF8 | Character string, fixed-length |
VARCHAR | UTF8 | Character string, variable-length |
TEXT | UTF8 | Variable unlimited length |
Example string literals
'abcdefghijk'
'time'
'h2o_temperature'
Numeric types
The following numeric types are supported:
SQL data type | Arrow data type | Description |
---|---|---|
BIGINT | INT64 | 64-bit signed integer |
BIGINT UNSIGNED | UINT64 | 64-bit unsigned integer |
DOUBLE | FLOAT64 | 64-bit floating-point number |
Integers
InfluxDB SQL supports the 64-bit signed integers:
Minimum signed integer: -9223372036854775808
Maximum signed integer: 9223372036854775807
Example integer literals
234
-446
5
Unsigned integers
InfluxDB SQL supports the 64-bit unsigned integers:
Minimum unsigned integer: 0
Maximum unsigned integer: 18446744073709551615
Example unsigned integer literals
Unsigned integer literals are comprised of an integer cast to the BIGINT UNSIGNED
type:
234::BIGINT UNSIGNED
458374893::BIGINT UNSIGNED
5::BIGINT UNSIGNED
Floats
InfluxDB SQL supports the 64-bit double floating point values. Floats can be a decimal point, decimal integer, or decimal fraction.
Example float literals
23.8
-446.89
5.00
0.033
Date and time data types
InfluxDB SQL supports the following DATE/TIME data types:
SQL data type | Arrow data type | Description |
---|---|---|
TIMESTAMP | Timestamp(Nanosecond, None) | Nanosecond timestamp with no time zone offset |
INTERVAL | Interval(IntervalMonthDayNano) | Interval of time with a specified duration |
Timestamp
A time type is a single point in time using nanosecond precision.
The following date and time formats are supported:
YYYY-MM-DDT00:00:00.000Z
YYYY-MM-DDT00:00:00.000-00:00
YYYY-MM-DD 00:00:00.000-00:00
YYYY-MM-DDT00:00:00Z
YYYY-MM-DD 00:00:00.000
YYYY-MM-DD 00:00:00
Example timestamp literals
'2023-01-02T03:04:06.000Z'
'2023-01-02T03:04:06.000-00:00'
'2023-01-02 03:04:06.000-00:00'
'2023-01-02T03:04:06Z'
'2023-01-02 03:04:06.000'
'2023-01-02 03:04:06'
Interval
The INTERVAL data type can be used with the following precision:
- nanosecond
- microsecond
- millisecond
- second
- minute
- hour
- day
- week
- month
- year
- century
Example interval literals
INTERVAL '10 minutes'
INTERVAL '1 year'
INTERVAL '2 days 1 hour 31 minutes'
Boolean types
Booleans store TRUE or FALSE values.
SQL data type | Arrow data type | Description |
---|---|---|
BOOLEAN | Boolean | True or false values |
Example boolean literals
true
TRUE
false
FALSE
Unsupported SQL types
The following SQL types are not currently supported:
- UUID
- BLOB
- CLOB
- BINARY
- VARBINARY
- REGCLASS
- NVARCHAR
- CUSTOM
- ARRAY
- ENUM
- SET
- DATETIME
- BYTEA
Data types compatible with parameters
For information about data types that can be substituted by parameters, see how to use parameterized queries with SQL.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.