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 ILP, for tables that do not already exist in QuestDB, partitions are applied automatically by day by default with a timestamp column
info
  • Checking if tables contain a designated timestamp column can be done via the tables() and table_columns() functions which are described in the meta functions documentation page.

  • The native timestamp format used by QuestDB is a Unix timestamp in microsecond resolution. See Timestamps in QuestDB for more details.

Properties#

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

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.

Advantages#

Electing a designated timestamp allows you to: