Designated timestamp

QuestDB offers the option to elect a column as a designated timestamp. This allows you to specify which column the tables will be indexed by in order to leverage time-oriented language features and high-performance functionalities.

A designated timestamp is elected by using the timestamp(columnName) function:

  • during a CREATE TABLE operation
  • during a SELECT operation (dynamic timestamp)
  • when ingesting data via InfluxDB Line Protocol, for tables that do not already exist in QuestDB, partitions are applied automatically by day by default with a timestamp column
  • The native timestamp format used by QuestDB is a Unix timestamp in microsecond resolution. See Timestamps in QuestDB for more details.


  • Only a column of type timestamp can be elected as a designated timestamp.
  • Only one column can be elected for a given table.

Checking the designated timestamp settings

The meta functions, tables() and table_columns(), are designed to show the designated timestamp settings of the selected table.

Advantages of electing a designated timestamp

Electing a designated timestamp allows you to:

Out-of-order policy

As of version 6.0.0, QuestDB supports the ingestion of records that are out-of-order (O3) by time. QuestDB detects and adjusts data ingestion for O3 data automatically and no manual configuration is required.