# Date

`Date` represents a Gregorian calendar date without a time of day or timezone. Its supported range is `1970-01-01` through `2149-06-06`, inclusive.

## Syntax

```text
Date
```

## Input and conversion

Text input uses `YYYY-MM-DD` and must be a valid date within the supported range. Integer input is the number of days since `1970-01-01`.

Casting a date to `INTEGER` returns its epoch-day count. Adding or subtracting an integer moves the date by that many days. Use an [`Interval`](https://coordinatordb.com/docs/reference/data-types/special-data-types/interval) for calendar-month or year arithmetic.

A Date compared with a timestamp represents midnight in the timestamp's timezone. Native date values cannot be summed directly; convert them explicitly when a numeric calculation is intended.

## Examples

### Creating a date column

```sql
CREATE TABLE events(id UInt32, day Date);
INSERT INTO events VALUES (1, '2025-03-05');
```

```sql
SELECT id, day, day + 1 AS next_day
FROM events
FORMAT csv;
```

```text
1,"2025-03-05","2025-03-06"
```

### Converting epoch days

```sql
SELECT CAST(1 AS Date),
       CAST(CAST('1970-01-02' AS Date) AS INTEGER)
FORMAT csv;
```

```text
"1970-01-02",1
```

See [Date32](https://coordinatordb.com/docs/reference/data-types/date32) for the alternative date range, and [DateTime](https://coordinatordb.com/docs/reference/data-types/datetime) for whole-second timestamps.
