DATE

The DATE data type stores a year, month, and day.

Syntax

A constant value of type DATE can be expressed using an interpreted literal, or a string literal annotated with type DATE or coerced to type DATE.

The string format for dates is YYYY-MM-DD. For example: DATE '2016-12-23'.

CockroachDB also supports using uninterpreted string literals in contexts where a DATE value is otherwise expected.

Note:

DATE values in CockroachDB are fully PostgreSQL-compatible, including support for special values (e.g., +/- infinity). Existing dates outside of the PostgreSQL date range (4714-11-24 BC to 5874897-12-31) are converted to +/- infinity dates.

Size

A DATE column supports values up to 16 bytes in width, but the total storage size is likely to be larger due to CockroachDB metadata.

Examples

icon/buttons/copy
> CREATE TABLE dates (a DATE PRIMARY KEY, b INT);
icon/buttons/copy
> SHOW COLUMNS FROM dates;
+-------------+-----------+-------------+----------------+-----------------------+-------------+
| column_name | data_type | is_nullable | column_default | generation_expression |   indices   |
+-------------+-----------+-------------+----------------+-----------------------+-------------+
| a           | DATE      |    false    | NULL           |                       | {"primary"} |
| b           | INT       |    true     | NULL           |                       | {}          |
+-------------+-----------+-------------+----------------+-----------------------+-------------+
(2 rows)

Explicitly typed DATE literal:

icon/buttons/copy

> INSERT INTO dates VALUES (DATE '2016-03-26', 12345);

String literal implicitly typed as DATE:

icon/buttons/copy

> INSERT INTO dates VALUES ('2016-03-27', 12345);
icon/buttons/copy
> SELECT * FROM dates;
+---------------------------+-------+
|             a             |   b   |
+---------------------------+-------+
| 2016-03-26 00:00:00+00:00 | 12345 |
| 2016-03-27 00:00:00+00:00 | 12345 |
+---------------------------+-------+

Supported casting and conversion

DATE values can be cast to any of the following data types:

Type Details
DECIMAL Converts to number of days since the Unix epoch (Jan. 1, 1970).
FLOAT Converts to number of days since the Unix epoch (Jan. 1, 1970).
TIMESTAMP Sets the time to 00:00 (midnight) in the resulting timestamp.
INT Converts to number of days since the Unix epoch (Jan. 1, 1970).
STRING ––

See also

Data Types

YesYes NoNo