# 18. Timestamps¶

QuasarDB supports different ways to express timestamps which are discussed in this chapter.

## 18.1. Absolute¶

Defines an absolute point in time. This can be either a date, or a date + time. When a time is not provided, assumes 12 AM (midnight).

In addition to this, there are convenience functions for representions relative to the current point in time: `now()`, `today()`, `yesterday()` and `tomorrow()` (parentheses are optional).

Examples:

`now`

Represents the current point in time, rounded by the second.

`today`

Represents the current day, truncated by the day. For example, assuming the current time is 3pm on January 2, 2018, this will represent 12AM on January 2, 2018.

`yesterday`

Represents one day before the current day, truncated by the day. For example, assuming the current time is 3pm on January 2, 2018, this will represent 12AM on January 1, 2018.

`tomorrow`

Represents one day after the current day, truncated by the day. For example, assuming the current time is 3pm on January 2, 2018, this will represent 12AM on January 3, 2018.

`epoch`

Represents the earliest representable date.

`end_of_time`

Represents the latest representable date.

`2018-01-01`

Represents the first of January 2018.

`2018-01-01T03:00:00`

Represents 3AM on the first of January 2018.

`2018-01-01T03:00:00.000000001Z`

Represents 1 nanosecond past 3AM on the first of January 2018.

## 18.2. Durations¶

Defines a duration of time. Typical use cases include `TIMESTAMP` calculations in expressions, defining relative offsets for a `RANGE`, or specifying time intervals for `GROUP BY`.

Valid durations are:

`1ns`, `1nanosecond`:

A delta of one nanosecond.

`1us`, `1microsecond`:

A delta of one microsecond.

`1ms`, `1millisecond`:

A delta of one millisecond.

`1s`, `1second`:

A delta of one second.

`1min`, `1minute`:

A delta of one minute.

`1h`, `1hour`:

A delta of one hour.

`1d`, `1day`:

A delta of one day.

`1w`, `1week`:

A delta of one week.

`1mon`, `1month`:

A delta of one month.

`1y`, `1year`:

A delta of one year.

`1y 2mon 3w 4d 5h 6min 7s 8ms 9us 10ns`:

A delta of 1 year, 2 months, 3 weeks, 4 days, 5 hours, etc.

## 18.3. Offsets¶

Defines a time offset relative to another absolute point in time. Typical use cases include performing calculations on `TIMESTAMP` columns or defining a `RANGE`.

An offset requires a duration and a sign (positive or negative) to be specified.

An example relative timerange for 2 weeks after the absolute timestamp:

```+2w
```

An example relative timerange 30 minutes before the absolute timestamp:

```-30min
```