Functions for working with dates and timesΒΆ

Most functions in this section accept an optional time zone argument, for example Europe/Amsterdam. In this case, the time zone is the specified one instead of the local or default one.

ExampleΒΆ

SELECT
    toDateTime('2016-06-15 23:00:00') AS time,
    toDate(time) AS date_local,
    toDate(time, 'Asia/Yekaterinburg') AS date_yekat,
    toString(time, 'US/Samoa') AS time_samoa
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€time─┬─date_local─┬─date_yekat─┬─time_samoa──────────┐
β”‚ 2016-06-15 23:00:00 β”‚ 2016-06-15 β”‚ 2016-06-16 β”‚ 2016-06-15 09:00:00 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

makeDateΒΆ

Constructs a Date value from individual year, month, and day components, or from a year and a day-of-year number.

SyntaxΒΆ

makeDate(year, month, day)
makeDate(year, day_of_year)

Alias:

  • MAKEDATE(year, month, day);
  • MAKEDATE(year, day_of_year);

ArgumentsΒΆ

ReturnsΒΆ

  • A date created from the arguments. Date.

ExampleΒΆ

Create a Date from a year, month and day:

SELECT makeDate(2023, 2, 28) AS Date

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€date─┐
β”‚ 2023-02-28 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Create a Date from a year and day of year argument:

SELECT makeDate(2023, 42) AS Date

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€date─┐
β”‚ 2023-02-11 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

makeDate32ΒΆ

Generates a Date32 value from specified year, month, and day, or from a year and a day-of-year.

SyntaxΒΆ

makeDate32(year, [month,] day)

ArgumentsΒΆ

ReturnsΒΆ

  • A date created from the arguments. Date32.

ExampleΒΆ

Create a date from a year, month, and day:

SELECT makeDate32(2024, 1, 1)

Result:

2024-01-01

Create a Date from a year and day of year:

SELECT makeDate32(2024, 100)

Result:

2024-04-09

makeDateTimeΒΆ

Assembles a DateTime value from its constituent year, month, day, hour, minute, and second parts.

SyntaxΒΆ

makeDateTime(year, month, day, hour, minute, second[, timezone])

ArgumentsΒΆ

ReturnsΒΆ

  • A date with time created from the arguments. DateTime.

ExampleΒΆ

SELECT makeDateTime(2023, 2, 28, 17, 12, 33) AS DateTime

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€DateTime─┐
β”‚ 2023-02-28 17:12:33 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

makeDateTime64ΒΆ

Constructs a DateTime64 value using provided year, month, day, hour, minute, and second, with an optional sub-second precision.

SyntaxΒΆ

makeDateTime64(year, month, day, hour, minute, second[, precision])

ArgumentsΒΆ

ReturnsΒΆ

  • A date and time created from the supplied arguments. DateTime64.

ExampleΒΆ

SELECT makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5)
β”Œβ”€makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5)─┐
β”‚                       2023-05-15 10:30:45.00779 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timestampΒΆ

Converts a date or datetime expression into a DateTime64(6) value. An optional second argument can specify a time to add to the converted value.

SyntaxΒΆ

timestamp(expr[, expr_time])

Alias: TIMESTAMP

ArgumentsΒΆ

  • expr: Date or date with time. String.
  • expr_time: Optional parameter. Time to add. String.

ReturnsΒΆ

ExampleΒΆ

SELECT timestamp('2023-12-31') as ts

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ts─┐
β”‚ 2023-12-31 00:00:00.000000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
SELECT timestamp('2023-12-31 12:00:00', '12:00:00.11') as ts

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ts─┐
β”‚ 2024-01-01 00:00:00.110000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timeZoneΒΆ

Retrieves the timezone configured for the current session.

SyntaxΒΆ

timeZone()

Alias: timezone.

ReturnsΒΆ

ExampleΒΆ

SELECT timezone()

Result:

β”Œβ”€timezone()─────┐
β”‚ America/Denver β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

serverTimeZoneΒΆ

Provides the timezone configured for the server.

SyntaxΒΆ

serverTimeZone()

Alias: serverTimezone.

ReturnsΒΆ

ExampleΒΆ

SELECT serverTimeZone()

Result:

β”Œβ”€serverTimeZone()─┐
β”‚ UTC              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toTimeZoneΒΆ

Changes the timezone attribute of a DateTime or DateTime64 value without altering its underlying Unix timestamp. This affects how the time is displayed.

SyntaxΒΆ

toTimezone(value, timezone)

Alias: toTimezone.

ArgumentsΒΆ

  • value: Time or date and time. DateTime64.
  • timezone: Timezone for the returned value. String. This argument is a constant, because toTimezone changes the timezone of a column (timezone is an attribute of DateTime* types).

ReturnsΒΆ

ExampleΒΆ

SELECT toDateTime('2019-01-01 00:00:00', 'UTC') AS time_utc,
    toTypeName(time_utc) AS type_utc,
    toInt32(time_utc) AS int32utc,
    toTimeZone(time_utc, 'Asia/Yekaterinburg') AS time_yekat,
    toTypeName(time_yekat) AS type_yekat,
    toInt32(time_yekat) AS int32yekat,
    toTimeZone(time_utc, 'US/Samoa') AS time_samoa,
    toTypeName(time_samoa) AS type_samoa,
    toInt32(time_samoa) AS int32samoa
FORMAT Vertical

Result:

Row 1:
──────
time_utc:   2019-01-01 00:00:00
type_utc:   DateTime('UTC')
int32utc:   1546300800
time_yekat: 2019-01-01 05:00:00
type_yekat: DateTime('Asia/Yekaterinburg')
int32yekat: 1546300800
time_samoa: 2018-12-31 13:00:00
type_samoa: DateTime('US/Samoa')
int32samoa: 1546300800

timeZoneOfΒΆ

Extracts the timezone name associated with a DateTime or DateTime64 value.

SyntaxΒΆ

timeZoneOf(value)

Alias: timezoneOf.

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

SELECT timezoneOf(now())

Result:

β”Œβ”€timezoneOf(now())─┐
β”‚ Etc/UTC           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timeZoneOffsetΒΆ

Calculates the offset in seconds from UTC for a given DateTime or DateTime64 value, considering daylight saving time and historical timezone changes.

SyntaxΒΆ

timeZoneOffset(value)

Alias: timezoneOffset.

ArgumentsΒΆ

ReturnsΒΆ

  • Offset from UTC in seconds. Int32.

ExampleΒΆ

SELECT toDateTime('2021-04-21 10:20:30', 'America/New_York') AS Time, toTypeName(Time) AS Type,
       timeZoneOffset(Time) AS Offset_in_seconds, (Offset_in_seconds / 3600) AS Offset_in_hours

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Time─┬─Type─────────────────────────┬─Offset_in_seconds─┬─Offset_in_hours─┐
β”‚ 2021-04-21 10:20:30 β”‚ DateTime('America/New_York') β”‚            -14400 β”‚              -4 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toYearΒΆ

Extracts the year component from a date or datetime value.

SyntaxΒΆ

toYear(value)

Alias: YEAR

ArgumentsΒΆ

ReturnsΒΆ

  • The year of the given date/time. UInt16.

ExampleΒΆ

SELECT toYear(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toYear(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                      2023 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toQuarterΒΆ

Retrieves the quarter of the year (1-4) from a date or datetime value.

SyntaxΒΆ

toQuarter(value)

Alias: QUARTER

ArgumentsΒΆ

ReturnsΒΆ

  • The quarter of the year (1, 2, 3 or 4) of the given date/time. UInt8.

ExampleΒΆ

SELECT toQuarter(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toQuarter(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                            2 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toMonthΒΆ

Extracts the month number (1-12) from a date or datetime value.

SyntaxΒΆ

toMonth(value)

Alias: MONTH

ArgumentsΒΆ

ReturnsΒΆ

  • The month of the year (1 - 12) of the given date/time. UInt8.

ExampleΒΆ

SELECT toMonth(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toMonth(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                          4 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toDayOfYearΒΆ

Returns the day number within the year (1 to 366) for a given date or datetime value.

SyntaxΒΆ

toDayOfYear(value)

Alias: DAYOFYEAR

ArgumentsΒΆ

ReturnsΒΆ

  • The day of the year (1 - 366) of the given date/time. UInt16.

ExampleΒΆ

SELECT toDayOfYear(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toDayOfYear(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                            111 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toDayOfMonthΒΆ

Extracts the day number within its month (1 to 31) from a date or datetime value.

SyntaxΒΆ

toDayOfMonth(value)

Aliases: DAYOFMONTH, DAY

ArgumentsΒΆ

ReturnsΒΆ

  • The day of the month (1 - 31) of the given date/time. UInt8.

ExampleΒΆ

SELECT toDayOfMonth(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                              21 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toDayOfWeekΒΆ

Determines the day of the week for a given date or datetime. You can specify the week's starting day and the numbering range (0-6 or 1-7) using an optional mode argument, and also provide a timezone.

SyntaxΒΆ

toDayOfWeek(t[, mode[, timezone]])

Alias: DAYOFWEEK.

ArgumentsΒΆ

  • t: a Date, Date32, DateTime or DateTime64.
  • mode: determines what the first day of the week is. Possible values are 0, 1, 2 or 3. See the following table for the differences.
  • timezone: optional parameter, it behaves like any other conversion function.
ModeFirst day of weekRange
0Monday1-7: Monday = 1, Tuesday = 2, ..., Sunday = 7
1Monday0-6: Monday = 0, Tuesday = 1, ..., Sunday = 6
2Sunday0-6: Sunday = 0, Monday = 1, ..., Saturday = 6
3Sunday1-7: Sunday = 1, Monday = 2, ..., Saturday = 7

ReturnsΒΆ

  • The day of the week (1-7), depending on the chosen mode, of the given date/time. UInt8.

ExampleΒΆ

The following date is April 21, 2023, which was a Friday:

SELECT
    toDayOfWeek(toDateTime('2023-04-21')),
    toDayOfWeek(toDateTime('2023-04-21'), 1)

Result:

β”Œβ”€toDayOfWeek(toDateTime('2023-04-21'))─┬─toDayOfWeek(toDateTime('2023-04-21'), 1)─┐
β”‚                                     5 β”‚                                        4 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toHourΒΆ

Extracts the hour component (0-23) from a datetime value. This function accounts for daylight saving time changes based on typical rules.

SyntaxΒΆ

toHour(value)

Alias: HOUR

ArgumentsΒΆ

ReturnsΒΆ

  • The hour of the day (0 - 23) of the given date/time. UInt8.

ExampleΒΆ

SELECT toHour(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toHour(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                        10 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toMinuteΒΆ

Extracts the minute component (0-59) from a datetime value.

SyntaxΒΆ

toMinute(value)

Alias: MINUTE

ArgumentsΒΆ

ReturnsΒΆ

  • The minute of the hour (0 - 59) of the given date/time. UInt8.

ExampleΒΆ

SELECT toMinute(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toMinute(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                          20 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toSecondΒΆ

Extracts the second component (0-59) from a datetime value, ignoring leap seconds.

SyntaxΒΆ

toSecond(value)

Alias: SECOND

ArgumentsΒΆ

ReturnsΒΆ

  • The second in the minute (0 - 59) of the given date/time. UInt8.

ExampleΒΆ

SELECT toSecond(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toSecond(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                          30 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toMillisecondΒΆ

Extracts the millisecond component (0-999) from a datetime value.

SyntaxΒΆ

toMillisecond(value)

Alias: MILLISECOND

ArgumentsΒΆ

ReturnsΒΆ

  • The millisecond in the minute (0 - 59) of the given date/time. UInt16.

ExampleΒΆ

SELECT toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3))

Result:

β”Œβ”€β”€toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3))─┐
β”‚                                                        456 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toUnixTimestampΒΆ

Converts a date, datetime, or string representation of a date/time into a Unix timestamp (seconds since epoch) as a UInt32. An optional timezone can be specified for string inputs.

SyntaxΒΆ

toUnixTimestamp(date)
toUnixTimestamp(str, [timezone])

ReturnsΒΆ

  • Returns the unix timestamp. UInt32.

ExampleΒΆ

SELECT
    '2017-11-05 08:07:47' AS dt_str,
    toUnixTimestamp(dt_str) AS from_str,
    toUnixTimestamp(dt_str, 'Asia/Tokyo') AS from_str_tokyo,
    toUnixTimestamp(toDateTime(dt_str)) AS from_datetime,
    toUnixTimestamp(toDateTime64(dt_str, 0)) AS from_datetime64,
    toUnixTimestamp(toDate(dt_str)) AS from_date,
    toUnixTimestamp(toDate32(dt_str)) AS from_date32
FORMAT Vertical

Result:

Row 1:
──────
dt_str:          2017-11-05 08:07:47
from_str:        1509869267
from_str_tokyo:  1509836867
from_datetime:   1509869267
from_datetime64: 1509869267
from_date:       1509840000
from_date32:     1509840000

toStartOfYearΒΆ

Truncates a date or datetime value to the beginning of its respective year.

SyntaxΒΆ

toStartOfYear(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The first day of the year of the input date/time. Date.

ExampleΒΆ

SELECT toStartOfYear(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toStartOfYear(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                       2023-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfISOYearΒΆ

Truncates a date or datetime value to the first day of its ISO year, which may differ from the calendar year start.

SyntaxΒΆ

toStartOfISOYear(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The first day of the year of the input date/time. Date.

ExampleΒΆ

SELECT toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                          2023-01-02 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfQuarterΒΆ

Truncates a date or datetime value to the first day of its quarter (January 1, April 1, July 1, or October 1).

SyntaxΒΆ

toStartOfQuarter(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The first day of the quarter of the given date/time. Date.

ExampleΒΆ

SELECT toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                          2023-04-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfMonthΒΆ

Truncates a date or datetime value to the first day of its month.

SyntaxΒΆ

toStartOfMonth(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The first day of the month of the given date/time. Date.

ExampleΒΆ

SELECT toStartOfMonth(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toStartOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                        2023-04-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toLastDayOfMonthΒΆ

Adjusts a date or datetime value to the last day of its month.

SyntaxΒΆ

toLastDayOfMonth(value)

Alias: LAST_DAY

ArgumentsΒΆ

ReturnsΒΆ

  • The last day of the month of the given date/time. Date.

ExampleΒΆ

SELECT toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                                          2023-04-30 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toMondayΒΆ

Finds the most recent Monday on or before the given date or datetime.

SyntaxΒΆ

toMonday(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The date of the nearest Monday on or prior to the given date. Date.

ExampleΒΆ

SELECT
    toMonday(toDateTime('2023-04-21 10:20:30')), /* a Friday */
    toMonday(toDate('2023-04-24')) /* already a Monday */

Result:

β”Œβ”€toMonday(toDateTime('2023-04-21 10:20:30'))─┬─toMonday(toDate('2023-04-24'))─┐
β”‚                                  2023-04-17 β”‚                     2023-04-24 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfWeekΒΆ

Truncates a date or datetime value to the beginning of its week, allowing specification of whether the week starts on Sunday or Monday.

SyntaxΒΆ

toStartOfWeek(t[, mode[, timezone]])

ArgumentsΒΆ

  • t: a Date, Date32, DateTime or DateTime64.
  • mode: determines the first day of the week as described in the toWeek() function.
  • timezone: Optional parameter, it behaves like any other conversion function.

ReturnsΒΆ

  • The date of the nearest Sunday or Monday on or prior to the given date, depending on the mode. Date.

ExampleΒΆ

SELECT
    toStartOfWeek(toDateTime('2023-04-21 10:20:30')), /* a Friday */
    toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1), /* a Friday */
    toStartOfWeek(toDate('2023-04-24')), /* a Monday */
    toStartOfWeek(toDate('2023-04-24'), 1) /* a Monday */
FORMAT Vertical

Result:

Row 1:
──────
toStartOfWeek(toDateTime('2023-04-21 10:20:30')):    2023-04-16
toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1): 2023-04-17
toStartOfWeek(toDate('2023-04-24')):                 2023-04-23
toStartOfWeek(toDate('2023-04-24'), 1):              2023-04-24

toLastDayOfWeekΒΆ

Adjusts a date or datetime value to the end of its week, allowing specification of whether the week ends on Saturday or Sunday.

SyntaxΒΆ

toLastDayOfWeek(t[, mode[, timezone]])

ArgumentsΒΆ

  • t: a Date, Date32, DateTime or DateTime64.
  • mode: determines the last day of the week as described in the toWeek function.
  • timezone: Optional parameter, it behaves like any other conversion function.

ReturnsΒΆ

  • The date of the nearest Sunday or Monday on or after the given date, depending on the mode. Date.

ExampleΒΆ

SELECT
    toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')), /* a Friday */
    toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1), /* a Friday */
    toLastDayOfWeek(toDate('2023-04-22')), /* a Saturday */
    toLastDayOfWeek(toDate('2023-04-22'), 1) /* a Saturday */
FORMAT Vertical

Result:

Row 1:
──────
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')):    2023-04-22
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1): 2023-04-23
toLastDayOfWeek(toDate('2023-04-22')):                 2023-04-22
toLastDayOfWeek(toDate('2023-04-22'), 1):              2023-04-23

toStartOfDayΒΆ

Truncates a datetime value to the start of its day (midnight).

SyntaxΒΆ

toStartOfDay(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The start of the day of the given date/time. DateTime.

ExampleΒΆ

SELECT toStartOfDay(toDateTime('2023-04-21 10:20:30'))

Result:

β”Œβ”€toStartOfDay(toDateTime('2023-04-21 10:20:30'))─┐
β”‚                             2023-04-21 00:00:00 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfHourΒΆ

Truncates a datetime value to the beginning of its hour.

SyntaxΒΆ

toStartOfHour(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The start of the hour of the given date/time. DateTime.

ExampleΒΆ

SELECT
    toStartOfHour(toDateTime('2023-04-21 10:20:30')),
    toStartOfHour(toDateTime64('2023-04-21', 6))

Result:

β”Œβ”€toStartOfHour(toDateTime('2023-04-21 10:20:30'))─┬─toStartOfHour(toDateTime64('2023-04-21', 6))─┐
β”‚                              2023-04-21 10:00:00 β”‚                          2023-04-21 00:00:00 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfMinuteΒΆ

Truncates a datetime value to the beginning of its minute.

SyntaxΒΆ

toStartOfMinute(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The start of the minute of the given date/time. DateTime.

ExampleΒΆ

SELECT
    toStartOfMinute(toDateTime('2023-04-21 10:20:30')),
    toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8))
FORMAT Vertical

Result:

Row 1:
──────
toStartOfMinute(toDateTime('2023-04-21 10:20:30')):           2023-04-21 10:20:00
toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8)): 2023-04-21 10:20:00

toStartOfSecondΒΆ

Removes any fractional second components from a DateTime64 value, effectively rounding down to the nearest second.

SyntaxΒΆ

toStartOfSecond(value, [timezone])

ArgumentsΒΆ

  • value: Date and time. DateTime64.
  • timezone: Timezone for the returned value (optional). If not specified, the function uses the timezone of the value parameter. String.

ReturnsΒΆ

ExampleΒΆ

Query without timezone:

WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64)

Result:

β”Œβ”€β”€β”€toStartOfSecond(dt64)─┐
β”‚ 2020-01-01 10:20:30.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query with timezone:

WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64, 'Asia/Istanbul')

Result:

β”Œβ”€toStartOfSecond(dt64, 'Asia/Istanbul')─┐
β”‚                2020-01-01 13:20:30.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfMillisecondΒΆ

Truncates a DateTime64 value to the beginning of its millisecond.

SyntaxΒΆ

toStartOfMillisecond(value, [timezone])

ArgumentsΒΆ

  • value: Date and time. DateTime64.
  • timezone: Timezone for the returned value (optional). If not specified, the function uses the timezone of the value parameter. String.

ReturnsΒΆ

ExampleΒΆ

Query without timezone:

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64)

Result:

β”Œβ”€β”€β”€β”€toStartOfMillisecond(dt64)─┐
β”‚ 2020-01-01 10:20:30.999000000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query with timezone:

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64, 'Asia/Istanbul')

Result:

β”Œβ”€toStartOfMillisecond(dt64, 'Asia/Istanbul')─┐
β”‚               2020-01-01 12:20:30.999000000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfMicrosecondΒΆ

Truncates a DateTime64 value to the beginning of its microsecond.

SyntaxΒΆ

toStartOfMicrosecond(value, [timezone])

ArgumentsΒΆ

  • value: Date and time. DateTime64.
  • timezone: Timezone for the returned value (optional). If not specified, the function uses the timezone of the value parameter. String.

ReturnsΒΆ

ExampleΒΆ

Query without timezone:

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64)

Result:

β”Œβ”€β”€β”€β”€toStartOfMicrosecond(dt64)─┐
β”‚ 2020-01-01 10:20:30.999999000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query with timezone:

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64, 'Asia/Istanbul')

Result:

β”Œβ”€toStartOfMicrosecond(dt64, 'Asia/Istanbul')─┐
β”‚               2020-01-01 12:20:30.999999000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfNanosecondΒΆ

Truncates a DateTime64 value to the beginning of its nanosecond.

SyntaxΒΆ

toStartOfNanosecond(value, [timezone])

ArgumentsΒΆ

  • value: Date and time. DateTime64.
  • timezone: Timezone for the returned value (optional). If not specified, the function uses the timezone of the value parameter. String.

ReturnsΒΆ

ExampleΒΆ

Query without timezone:

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64)

Result:

β”Œβ”€β”€β”€β”€β”€toStartOfNanosecond(dt64)─┐
β”‚ 2020-01-01 10:20:30.999999999 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query with timezone:

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64, 'Asia/Istanbul')

Result:

β”Œβ”€toStartOfNanosecond(dt64, 'Asia/Istanbul')─┐
β”‚              2020-01-01 12:20:30.999999999 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toStartOfFiveMinutesΒΆ

Truncates a datetime value to the start of the nearest five-minute interval.

SyntaxΒΆ

toStartOfFiveMinutes(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The start of the five-minute interval of the given date/time. DateTime.

ExampleΒΆ

SELECT
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical

Result:

Row 1:
──────
toStartOfFiveMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:15:00
toStartOfFiveMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:20:00
toStartOfFiveMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:20:00

toStartOfTenMinutesΒΆ

Truncates a datetime value to the start of the nearest ten-minute interval.

SyntaxΒΆ

toStartOfTenMinutes(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The start of the ten-minute interval of the given date/time. DateTime.

ExampleΒΆ

SELECT
    toStartOfTenMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfTenMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfTenMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical

Result:

Row 1:
──────
toStartOfTenMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:10:00
toStartOfTenMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:20:00
toStartOfTenMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:20:00

toStartOfFifteenMinutesΒΆ

Truncates a datetime value to the start of the nearest fifteen-minute interval.

SyntaxΒΆ

toStartOfFifteenMinutes(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The start of the fifteen-minute interval of the given date/time. DateTime.

ExampleΒΆ

SELECT
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical

Result:

Row 1:
──────
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:15:00
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:15:00
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:15:00

toStartOfIntervalΒΆ

Truncates a date or datetime value to the beginning of a specified time interval (for example, year, month, day, hour). This function offers flexible interval rounding, similar to other toStartOf* functions.

SyntaxΒΆ

toStartOfInterval(value, INTERVAL x unit[, time_zone])
toStartOfInterval(value, INTERVAL x unit[, origin[, time_zone]])

Aliases: time_bucket, date_bin.

ArgumentsΒΆ

  • value: a Date, Date32, DateTime or DateTime64.
  • x: The number of unit intervals. Integer.
  • unit: The time unit for the interval. Possible values: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND.
  • origin: An optional reference point for the interval calculation. DateTime.
  • time_zone: Optional Timezone for the returned value.

ReturnsΒΆ

ExampleΒΆ

SELECT toStartOfInterval(toDateTime('2023-01-01 14:45:00'), INTERVAL 1 MINUTE, toDateTime('2023-01-01 14:35:30'))

Result:

β”Œβ”€β”€β”€toStartOfInterval(...)─┐
β”‚      2023-01-01 14:44:30 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toTimeΒΆ

Extracts the time component from a date or datetime value and sets the date to 1970-01-02.

SyntaxΒΆ

toTime(date[,timezone])

ArgumentsΒΆ

ReturnsΒΆ

  • DateTime with date equated to 1970-01-02 while preserving the time.

ExampleΒΆ

Query:

SELECT toTime(toDateTime64('1970-12-10 01:20:30.3000',3)) AS result, toTypeName(result)

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€result─┬─toTypeName(result)─┐
β”‚ 1970-01-02 01:20:30 β”‚ DateTime           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toRelativeYearNumΒΆ

Calculates the number of years that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeYearNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of years from a fixed reference point in the past. UInt16.

ExampleΒΆ

Query:

SELECT
    toRelativeYearNum(toDate('2002-12-08')) AS y1,
    toRelativeYearNum(toDate('2010-10-26')) AS y2

Result:

β”Œβ”€β”€β”€y1─┬───y2─┐
β”‚ 2002 β”‚ 2010 β”‚
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜

toRelativeQuarterNumΒΆ

Calculates the number of quarters that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeQuarterNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of quarters from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeQuarterNum(toDate('1993-11-25')) AS q1,
  toRelativeQuarterNum(toDate('2005-01-05')) AS q2

Result:

β”Œβ”€β”€β”€q1─┬───q2─┐
β”‚ 7975 β”‚ 8020 β”‚
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜

toRelativeMonthNumΒΆ

Calculates the number of months that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeMonthNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of months from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeMonthNum(toDate('2001-04-25')) AS m1,
  toRelativeMonthNum(toDate('2009-07-08')) AS m2

Result:

β”Œβ”€β”€β”€β”€m1─┬────m2─┐
β”‚ 24016 β”‚ 24115 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

toRelativeWeekNumΒΆ

Calculates the number of weeks that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeWeekNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of weeks from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeWeekNum(toDate('2000-02-29')) AS w1,
  toRelativeWeekNum(toDate('2001-01-12')) AS w2

Result:

β”Œβ”€β”€β”€w1─┬───w2─┐
β”‚ 1574 β”‚ 1619 β”‚
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜

toRelativeDayNumΒΆ

Calculates the number of days that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeDayNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of days from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeDayNum(toDate('1993-10-05')) AS d1,
  toRelativeDayNum(toDate('2000-09-20')) AS d2

Result:

β”Œβ”€β”€β”€d1─┬────d2─┐
β”‚ 8678 β”‚ 11220 β”‚
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

toRelativeHourNumΒΆ

Calculates the number of hours that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeHourNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of hours from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeHourNum(toDateTime('1993-10-05 05:20:36')) AS h1,
  toRelativeHourNum(toDateTime('2000-09-20 14:11:29')) AS h2

Result:

β”Œβ”€β”€β”€β”€β”€h1─┬─────h2─┐
β”‚ 208276 β”‚ 269292 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toRelativeMinuteNumΒΆ

Calculates the number of minutes that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeMinuteNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of minutes from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeMinuteNum(toDateTime('1993-10-05 05:20:36')) AS m1,
  toRelativeMinuteNum(toDateTime('2000-09-20 14:11:29')) AS m2

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€m1─┬───────m2─┐
β”‚ 12496580 β”‚ 16157531 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toRelativeSecondNumΒΆ

Calculates the number of seconds that have passed since a predefined historical reference point for a given date or datetime.

SyntaxΒΆ

toRelativeSecondNum(date)

ArgumentsΒΆ

ReturnsΒΆ

  • The number of seconds from a fixed reference point in the past. UInt32.

ExampleΒΆ

Query:

SELECT
  toRelativeSecondNum(toDateTime('1993-10-05 05:20:36')) AS s1,
  toRelativeSecondNum(toDateTime('2000-09-20 14:11:29')) AS s2

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€s1─┬────────s2─┐
β”‚ 749794836 β”‚ 969451889 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toISOYearΒΆ

Extracts the ISO year number from a date or datetime value.

SyntaxΒΆ

toISOYear(value)

ArgumentsΒΆ

ReturnsΒΆ

  • The input value converted to a ISO year number. UInt16.

ExampleΒΆ

Query:

SELECT
  toISOYear(toDate('2024/10/02')) as year1,
  toISOYear(toDateTime('2024-10-02 01:30:00')) as year2

Result:

β”Œβ”€year1─┬─year2─┐
β”‚  2024 β”‚  2024 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

toISOWeekΒΆ

Extracts the ISO week number (1-53) from a date or datetime value.

SyntaxΒΆ

toISOWeek(value)

ArgumentsΒΆ

ReturnsΒΆ

  • value converted to the current ISO week number. UInt8.

ExampleΒΆ

Query:

SELECT
  toISOWeek(toDate('2024/10/02')) AS week1,
  toISOWeek(toDateTime('2024/10/02 01:30:00')) AS week2

Response:

β”Œβ”€week1─┬─week2─┐
β”‚    40 β”‚    40 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

toWeekΒΆ

Returns the week number for a given date or datetime. It supports various modes to define the start day of the week and the numbering scheme (0-53 or 1-53).

SyntaxΒΆ

toWeek(t[, mode[, time_zone]])

Alias: WEEK

ArgumentsΒΆ

  • t: Date or DateTime.
  • mode: Optional parameter, Range of values is [0,9], default is 0.
  • Timezone: Optional parameter, it behaves like any other conversion function.
ModeFirst day of weekRangeWeek 1 is the first week ...
0Sunday0-53with a Sunday in this year
1Monday0-53with 4 or more days this year
2Sunday1-53with a Sunday in this year
3Monday1-53with 4 or more days this year
4Sunday0-53with 4 or more days this year
5Monday0-53with a Monday in this year
6Sunday1-53with 4 or more days this year
7Monday1-53with a Monday in this year
8Sunday1-53contains January 1
9Monday1-53contains January 1

ReturnsΒΆ

  • The week number (0-53 or 1-53), depending on the chosen mode, of the given date/time. UInt8.

ExampleΒΆ

SELECT toDate('2016-12-27') AS date, toWeek(date) AS week0, toWeek(date,1) AS week1, toWeek(date,9) AS week9
β”Œβ”€β”€β”€β”€β”€β”€β”€date─┬─week0─┬─week1─┬─week9─┐
β”‚ 2016-12-27 β”‚    52 β”‚    52 β”‚     1 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

toYearWeekΒΆ

Combines the year and week number into a single integer (YYYYWW) for a given date. The year component might adjust for weeks spanning across calendar year boundaries.

SyntaxΒΆ

toYearWeek(t[, mode[, timezone]])

Alias: YEARWEEK

ArgumentsΒΆ

  • t: Date or DateTime.
  • mode: Optional parameter, Range of values is [0,9], default is 0.
  • Timezone: Optional parameter, it behaves like any other conversion function.

ReturnsΒΆ

  • Year and week number combined into a single integer. UInt32.

The week number returned by toYearWeek() can be different from what the toWeek() returns. toWeek() always returns week number in the context of the given year, and in case toWeek() returns 0, toYearWeek() returns the value corresponding to the last week of previous year.

ExampleΒΆ

SELECT toDate('2016-12-27') AS date, toYearWeek(date) AS yearWeek0, toYearWeek(date,1) AS yearWeek1, toYearWeek(date,9) AS yearWeek9, toYearWeek(toDate('2022-01-01')) AS prev_yearWeek
β”Œβ”€β”€β”€β”€β”€β”€β”€date─┬─yearWeek0─┬─yearWeek1─┬─yearWeek9─┬─prev_yearWeek─┐
β”‚ 2016-12-27 β”‚    201652 β”‚    201652 β”‚    201701 β”‚        202152 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toDaysSinceYearZeroΒΆ

Calculates the total number of days that have elapsed since January 1, year 0, according to the proleptic Gregorian calendar.

SyntaxΒΆ

toDaysSinceYearZero(date[, time_zone])

Alias: TO_DAYS

ArgumentsΒΆ

  • date: The date to calculate the number of days passed since year zero from. Date, Date32, DateTime or DateTime64.
  • time_zone: A String type constant value or an expression representing the time zone.

ReturnsΒΆ

The number of days passed since date 0000-01-01. UInt32.

ExampleΒΆ

SELECT toDaysSinceYearZero(toDate('2023-09-08'))

Result:

β”Œβ”€toDaysSinceYearZero(toDate('2023-09-08')))─┐
β”‚                                     713569 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

fromDaysSinceYearZeroΒΆ

Converts a count of days since January 1, year 0, into a Date value in the proleptic Gregorian calendar.

SyntaxΒΆ

fromDaysSinceYearZero(days)

Alias: FROM_DAYS

ArgumentsΒΆ

  • days: The number of days passed since year zero. Integer.

ReturnsΒΆ

The date corresponding to the number of days passed since year zero. Date.

ExampleΒΆ

SELECT fromDaysSinceYearZero(739136), fromDaysSinceYearZero(toDaysSinceYearZero(toDate('2023-09-08')))

Result:

β”Œβ”€fromDaysSinceYearZero(739136)─┬─fromDaysSinceYearZero(toDaysSinceYearZero(toDate('2023-09-08')))─┐
β”‚                    2023-09-08 β”‚                                                       2023-09-08 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

fromDaysSinceYearZero32ΒΆ

Converts a count of days since January 1, year 0, into a Date32 value.

SyntaxΒΆ

fromDaysSinceYearZero32(days)

ArgumentsΒΆ

  • days: The number of days passed since year zero. Integer.

ReturnsΒΆ

The date corresponding to the number of days passed since year zero. Date32.

ExampleΒΆ

SELECT fromDaysSinceYearZero32(739136)

Result:

β”Œβ”€fromDaysSinceYearZero32(739136)─┐
β”‚                      2023-09-08 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

ageΒΆ

Calculates the difference between two date or datetime values in a specified time unit (for example, hours, days, months). The calculation is precise to the nanosecond.

SyntaxΒΆ

age('unit', startdate, enddate, [timezone])

ArgumentsΒΆ

  • unit: The type of interval for result. String. Possible values:
    • nanosecond, nanoseconds, ns
    • microsecond, microseconds, us, u
    • millisecond, milliseconds, ms
    • second, seconds, ss, s
    • minute, minutes, mi, n
    • hour, hours, hh, h
    • day, days, dd, d
    • week, weeks, wk, ww
    • month, months, mm, m
    • quarter, quarters, qq, q
    • year, years, yyyy, yy
  • startdate: The first time value to subtract (the subtrahend). Date, Date32, DateTime or DateTime64.
  • enddate: The second time value to subtract from (the minuend). Date, Date32, DateTime or DateTime64.
  • timezone: Timezone name (optional). If specified, it's applied to both startdate and enddate. If not specified, timezones of startdate and enddate are used. If they aren't the same, the result is unspecified.

ReturnsΒΆ

Difference between enddate and startdate expressed in unit. Int.

ExampleΒΆ

SELECT age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))

Result:

β”Œβ”€age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))─┐
β”‚                                                                                24 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
SELECT
    toDate('2022-01-01') AS e,
    toDate('2021-12-29') AS s,
    age('day', s, e) AS day_age,
    age('month', s, e) AS month__age,
    age('year', s, e) AS year_age

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€e─┬──────────s─┬─day_age─┬─month__age─┬─year_age─┐
β”‚ 2022-01-01 β”‚ 2021-12-29 β”‚       3 β”‚          0 β”‚        0 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

date_diffΒΆ

Computes the number of interval boundaries (for example, day, month, year) crossed between two date or datetime values. This function uses relative units for its calculation.

SyntaxΒΆ

date_diff('unit', startdate, enddate, [timezone])

Aliases: dateDiff, DATE_DIFF, timestampDiff, timestamp_diff, TIMESTAMP_DIFF.

ArgumentsΒΆ

  • unit: The type of interval for result. String. Possible values:
    • nanosecond, nanoseconds, ns
    • microsecond, microseconds, us, u
    • millisecond, milliseconds, ms
    • second, seconds, ss, s
    • minute, minutes, mi, n
    • hour, hours, hh, h
    • day, days, dd, d
    • week, weeks, wk, ww
    • month, months, mm, m
    • quarter, quarters, qq, q
    • year, years, yyyy, yy
  • startdate: The first time value to subtract (the subtrahend). Date, Date32, DateTime or DateTime64.
  • enddate: The second time value to subtract from (the minuend). Date, Date32, DateTime or DateTime64.
  • timezone: Timezone name (optional). If specified, it's applied to both startdate and enddate. If not specified, timezones of startdate and enddate are used. If they aren't the same, the result is unspecified.

ReturnsΒΆ

Difference between enddate and startdate expressed in unit. Int.

ExampleΒΆ

SELECT dateDiff('hour', toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00'))

Result:

β”Œβ”€dateDiff('hour', toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00'))─┐
β”‚                                                                                     25 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
SELECT
    toDate('2022-01-01') AS e,
    toDate('2021-12-29') AS s,
    dateDiff('day', s, e) AS day_diff,
    dateDiff('month', s, e) AS month__diff,
    dateDiff('year', s, e) AS year_diff

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€e─┬──────────s─┬─day_diff─┬─month__diff─┬─year_diff─┐
β”‚ 2022-01-01 β”‚ 2021-12-29 β”‚        3 β”‚           1 β”‚         1 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

date_truncΒΆ

Truncates a date or datetime value to the beginning of a specified time unit (for example, hour, day, month, year).

SyntaxΒΆ

date_trunc(unit, value[, timezone])

Alias: dateTrunc.

ArgumentsΒΆ

  • unit: The type of interval to truncate the result. String. Possible values:
    • nanosecond - Compatible only with DateTime64
    • microsecond - Compatible only with DateTime64
    • milisecond - Compatible only with DateTime64
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year unit argument is case-insensitive.
  • value: Date and time. Date, Date32, DateTime or DateTime64.
  • timezone: Timezone name for the returned value (optional). If not specified, the function uses the timezone of the value parameter.

ReturnsΒΆ

  • Value, truncated to the specified part of date. DateTime.

ExampleΒΆ

Query without timezone:

SELECT now(), date_trunc('hour', now())

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€now()─┬─date_trunc('hour', now())─┐
β”‚ 2020-09-28 10:40:45 β”‚       2020-09-28 10:00:00 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query with the specified timezone:

SELECT now(), date_trunc('hour', now(), 'Asia/Istanbul')

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€now()─┬─date_trunc('hour', now(), 'Asia/Istanbul')─┐
β”‚ 2020-09-28 10:46:26 β”‚                        2020-09-28 13:00:00 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

date_addΒΆ

Adds a specified time interval to a date or datetime value.

SyntaxΒΆ

date_add(unit, value, date)

Alternative syntax:

date_add(date, INTERVAL value unit)

Aliases: dateAdd, DATE_ADD.

ArgumentsΒΆ

  • unit: The type of interval to add. Note: This isn't a String and must therefore not be quoted. Possible values:
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year
  • value: Value of interval to add. Int.
  • date: The date or date with time to which value is added. Date, Date32, DateTime or DateTime64.

ReturnsΒΆ

Date or date with time obtained by adding value, expressed in unit, to date. Date, Date32, DateTime or DateTime64.

ExampleΒΆ

SELECT date_add(YEAR, 3, toDate('2018-01-01'))

Result:

β”Œβ”€plus(toDate('2018-01-01'), toIntervalYear(3))─┐
β”‚                                    2021-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
SELECT date_add(toDate('2018-01-01'), INTERVAL 3 YEAR)

Result:

β”Œβ”€plus(toDate('2018-01-01'), toIntervalYear(3))─┐
β”‚                                    2021-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

date_subΒΆ

Subtracts a specified time interval from a date or datetime value.

SyntaxΒΆ

date_sub(unit, value, date)

Alternative syntax:

date_sub(date, INTERVAL value unit)

Aliases: dateSub, DATE_SUB.

ArgumentsΒΆ

  • unit: The type of interval to subtract. Note: This isn't a String and must therefore not be quoted. Possible values:
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year
  • value: Value of interval to subtract. Int.
  • date: The date or date with time from which value is subtracted. Date, Date32, DateTime or DateTime64.

ReturnsΒΆ

Date or date with time obtained by subtracting value, expressed in unit, from date. Date, Date32, DateTime or DateTime64.

ExampleΒΆ

SELECT date_sub(YEAR, 3, toDate('2018-01-01'))

Result:

β”Œβ”€minus(toDate('2018-01-01'), toIntervalYear(3))─┐
β”‚                                     2015-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
SELECT date_sub(toDate('2018-01-01'), INTERVAL 3 YEAR)

Result:

β”Œβ”€minus(toDate('2018-01-01'), toIntervalYear(3))─┐
β”‚                                     2015-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timestamp_addΒΆ

Adds a specified time interval to a date or datetime value.

SyntaxΒΆ

timestamp_add(date, INTERVAL value unit)

Aliases: timeStampAdd, TIMESTAMP_ADD.

ArgumentsΒΆ

  • date: Date or date with time. Date, Date32, DateTime or DateTime64.
  • value: Value of interval to add. Int.
  • unit: The type of interval to add. String. Possible values:
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year

ReturnsΒΆ

Date or date with time with the specified value expressed in unit added to date. Date, Date32, DateTime or DateTime64.

ExampleΒΆ

select timestamp_add(toDate('2018-01-01'), INTERVAL 3 MONTH)

Result:

β”Œβ”€plus(toDate('2018-01-01'), toIntervalMonth(3))─┐
β”‚                                     2018-04-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timestamp_subΒΆ

Subtracts a specified time interval from a date or datetime value.

SyntaxΒΆ

timestamp_sub(unit, value, date)

Aliases: timeStampSub, TIMESTAMP_SUB.

ArgumentsΒΆ

  • unit: The type of interval to subtract. String. Possible values:
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year
  • value: Value of interval to subtract. Int.
  • date: Date or date with time. Date, Date32, DateTime or DateTime64.

ReturnsΒΆ

Date or date with time obtained by subtracting value, expressed in unit, from date. Date, Date32, DateTime or DateTime64.

ExampleΒΆ

select timestamp_sub(MONTH, 5, toDateTime('2018-12-18 01:02:03'))

Result:

β”Œβ”€minus(toDateTime('2018-12-18 01:02:03'), toIntervalMonth(5))─┐
β”‚                                          2018-07-18 01:02:03 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addDateΒΆ

Adds a specified time interval to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addDate(date, interval)

Alias: ADDDATE

ArgumentsΒΆ

ReturnsΒΆ

Date or date with time obtained by adding interval to date. Date, Date32, DateTime or DateTime64.

ExampleΒΆ

SELECT addDate(toDate('2018-01-01'), INTERVAL 3 YEAR)

Result:

β”Œβ”€addDate(toDate('2018-01-01'), toIntervalYear(3))─┐
β”‚                                       2021-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subDateΒΆ

Subtracts a specified time interval from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subDate(date, interval)

Alias: SUBDATE

ArgumentsΒΆ

ReturnsΒΆ

Date or date with time obtained by subtracting interval from date. Date, Date32, DateTime or DateTime64.

ExampleΒΆ

SELECT subDate(toDate('2018-01-01'), INTERVAL 3 YEAR)

Result:

β”Œβ”€subDate(toDate('2018-01-01'), toIntervalYear(3))─┐
β”‚                                       2015-01-01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

nowΒΆ

Returns the current date and time when the query is analyzed. This value remains constant throughout the query execution.

SyntaxΒΆ

now([timezone])

Alias: current_timestamp.

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

Query without timezone:

SELECT now()

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€now()─┐
β”‚ 2020-10-17 07:42:09 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query with the specified timezone:

SELECT now('Asia/Istanbul')

Result:

β”Œβ”€now('Asia/Istanbul')─┐
β”‚  2020-10-17 10:42:23 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

now64ΒΆ

Returns the current date and time with sub-second precision when the query is analyzed. This value remains constant throughout the query execution.

SyntaxΒΆ

now64([scale], [timezone])

ArgumentsΒΆ

  • scale: Tick size (precision): 10<sup>-precision</sup> seconds. Valid range: [ 0 : 9 ]. Typically, are used - 3 (default) (milliseconds), 6 (microseconds), 9 (nanoseconds).
  • timezone: Timezone name for the returned value (optional).

ReturnsΒΆ

  • Current date and time with sub-second precision. DateTime64.

ExampleΒΆ

SELECT now64(), now64(9, 'Asia/Istanbul')

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€now64()─┬─────now64(9, 'Asia/Istanbul')─┐
β”‚ 2022-08-21 19:34:26.196 β”‚ 2022-08-21 22:34:26.196542766 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

nowInBlockΒΆ

Returns the current date and time at the moment each data block is processed during query execution. Unlike now(), its value can vary between different blocks in a long-running query.

SyntaxΒΆ

nowInBlock([timezone])

ArgumentsΒΆ

ReturnsΒΆ

  • Current date and time at the moment of processing of each block of data. DateTime.

ExampleΒΆ

SELECT
    now(),
    nowInBlock(),
    sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock

Result:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€now()─┬────────nowInBlock()─┬─sleep(1)─┐
β”‚ 2022-08-21 19:41:19 β”‚ 2022-08-21 19:41:19 β”‚        0 β”‚
β”‚ 2022-08-21 19:41:19 β”‚ 2022-08-21 19:41:20 β”‚        0 β”‚
β”‚ 2022-08-21 19:41:19 β”‚ 2022-08-21 19:41:21 β”‚        0 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

todayΒΆ

Returns the current date when the query is analyzed. This is equivalent to casting the result of now() to a Date.

SyntaxΒΆ

today()

Aliases: curdate, current_date.

ArgumentsΒΆ

  • None

ReturnsΒΆ

ExampleΒΆ

Query:

SELECT today() AS today, curdate() AS curdate, current_date() AS current_date FORMAT Pretty

ResultΒΆ

Running the preceding query on March 3, 2024 would have returned the following response:

┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃      today ┃    curdate ┃ current_date ┃
┑━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
β”‚ 2024-03-03 β”‚ 2024-03-03 β”‚   2024-03-03 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

yesterdayΒΆ

Returns yesterday's date based on the current date at query analysis time.

SyntaxΒΆ

yesterday()

ArgumentsΒΆ

  • None

ReturnsΒΆ

  • Yesterday's date. Date.

ExampleΒΆ

SELECT yesterday()

Result:

β”Œβ”€yesterday()─┐
β”‚  2024-05-27 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timeSlotΒΆ

Rounds a datetime value down to the beginning of the nearest 30-minute interval.

SyntaxΒΆ

timeSlot(time[, time_zone])

ArgumentsΒΆ

  • time: Time to round to the start of a half-an-hour length interval. DateTime/Date32/DateTime64.
  • time_zone: A String type constant value or an expression representing the time zone.

ReturnsΒΆ

  • Returns the time rounded to the start of a half-an-hour length interval. DateTime.

ExampleΒΆ

Query:

SELECT timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))

Result:

β”Œβ”€timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))─┐
β”‚                                2000-01-02 03:00:00 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toYYYYMMΒΆ

Converts a date or datetime into a UInt32 integer representing the year and month in YYYYMM format. An optional timezone can be specified.

SyntaxΒΆ

toYYYYMM(value[, timezone])

ArgumentsΒΆ

  • value: A date or date with time. Date or DateTime.
  • timezone: Optional Timezone for the returned value.

ReturnsΒΆ

  • A UInt32 number containing the year and month number (YYYY * 100 + MM).

ExampleΒΆ

SELECT
    toYYYYMM(now(), 'US/Eastern')

Result:

β”Œβ”€toYYYYMM(now(), 'US/Eastern')─┐
β”‚                        202303 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toYYYYMMDDΒΆ

Converts a date or datetime into a UInt32 integer representing the year, month, and day in YYYYMMDD format. An optional timezone can be specified.

SyntaxΒΆ

toYYYYMMDD(value[, timezone])

ArgumentsΒΆ

  • value: A date or date with time. Date or DateTime.
  • timezone: Optional Timezone for the returned value.

ReturnsΒΆ

  • A UInt32 number containing the year, month, and day number (YYYY * 10000 + MM * 100 + DD).

ExampleΒΆ

SELECT toYYYYMMDD(now(), 'US/Eastern')

Result:

β”Œβ”€toYYYYMMDD(now(), 'US/Eastern')─┐
β”‚                        20230302 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

toYYYYMMDDhhmmssΒΆ

Converts a date or datetime into a UInt64 integer representing the full timestamp in YYYYMMDDhhmmss format. An optional timezone can be specified.

SyntaxΒΆ

toYYYYMMDDhhmmss(value[, timezone])

ArgumentsΒΆ

  • value: A date or date with time. Date or DateTime.
  • timezone: Optional Timezone for the returned value.

ReturnsΒΆ

  • A UInt64 number containing the year, month, day, hour, minute, and second number (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss).

ExampleΒΆ

SELECT toYYYYMMDDhhmmss(now(), 'US/Eastern')

Result:

β”Œβ”€toYYYYMMDDhhmmss(now(), 'US/Eastern')─┐
β”‚                        20230302112209 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

YYYYMMDDToDateΒΆ

Converts an integer in YYYYMMDD format into a Date value.

SyntaxΒΆ

YYYYMMDDToDate(yyyymmdd)

ArgumentsΒΆ

ReturnsΒΆ

  • A date created from the arguments. Date.

ExampleΒΆ

SELECT YYYYMMDDToDate(20230911)

Result:

β”Œβ”€YYYYMMDDToDate(20230911)─┐
β”‚               2023-09-11 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

YYYYMMDDToDate32ΒΆ

Converts an integer in YYYYMMDD format into a Date32 value.

SyntaxΒΆ

YYYYMMDDToDate32(yyyymmdd)

ArgumentsΒΆ

ReturnsΒΆ

  • A date created from the arguments. Date32.

ExampleΒΆ

SELECT YYYYMMDDToDate32(20230911)

Result:

β”Œβ”€YYYYMMDDToDate32(20230911)─┐
β”‚                 2023-09-11 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

YYYYMMDDhhmmssToDateTimeΒΆ

Converts an integer in YYYYMMDDhhmmss format into a DateTime value. An optional timezone can be specified.

SyntaxΒΆ

YYYYMMDDhhmmssToDateTime(yyyymmddhhmmss[, timezone])

ArgumentsΒΆ

  • yyyymmddhhmmss: A number representing the year, month, day, hour, minute, and second. Integer, Float or Decimal.
  • timezone: Optional Timezone for the returned value.

ReturnsΒΆ

  • A date with time created from the arguments. DateTime.

ExampleΒΆ

SELECT YYYYMMDDhhmmssToDateTime(20230911131415)

Result:

β”Œβ”€YYYYMMDDhhmmssToDateTime(20230911131415)─┐
β”‚                           2023-09-11 13:14:15 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

YYYYMMDDhhmmssToDateTime64ΒΆ

Converts an integer in YYYYMMDDhhmmss format into a DateTime64 value, with optional timezone and precision.

SyntaxΒΆ

YYYYMMDDhhmmssToDateTime64(yyyymmddhhmmss[, timezone[, precision]])

ArgumentsΒΆ

  • yyyymmddhhmmss: A number representing the year, month, day, hour, minute, and second. Integer, Float or Decimal.
  • timezone: Optional Timezone for the returned value.
  • precision: Optional precision of the sub-second component (0-9). Integer.

ReturnsΒΆ

  • A date with time created from the arguments. DateTime64.

ExampleΒΆ

SELECT YYYYMMDDhhmmssToDateTime64(20230911131415, 'UTC', 3)

Result:

β”Œβ”€YYYYMMDDhhmmssToDateTime64(20230911131415, 'UTC', 3)─┐
β”‚                                2023-09-11 13:14:15.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

changeYearΒΆ

Modifies the year component of a date or datetime value to a new specified year.

SyntaxΒΆ

changeYear(date_or_datetime, value)

ArgumentsΒΆ

ReturnsΒΆ

  • The same type as date_or_datetime.

ExampleΒΆ

SELECT changeYear(toDate('1999-01-01'), 2000), changeYear(toDateTime64('1999-01-01 00:00:00.000', 3), 2000)

Result:

β”Œβ”€changeYear(toDate('1999-01-01'), 2000)─┬─changeYear(toDateTime64('1999-01-01 00:00:00.000', 3), 2000)─┐
β”‚                             2000-01-01 β”‚                                      2000-01-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

changeMonthΒΆ

Modifies the month component of a date or datetime value to a new specified month.

SyntaxΒΆ

changeMonth(date_or_datetime, value)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns a value of same type as date_or_datetime.

ExampleΒΆ

SELECT changeMonth(toDate('1999-01-01'), 2), changeMonth(toDateTime64('1999-01-01 00:00:00.000', 3), 2)

Result:

β”Œβ”€changeMonth(toDate('1999-01-01'), 2)─┬─changeMonth(toDateTime64('1999-01-01 00:00:00.000', 3), 2)─┐
β”‚                           1999-02-01 β”‚                                    1999-02-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

changeDayΒΆ

Modifies the day component of a date or datetime value to a new specified day.

SyntaxΒΆ

changeDay(date_or_datetime, value)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns a value of same type as date_or_datetime.

ExampleΒΆ

SELECT changeDay(toDate('1999-01-01'), 5), changeDay(toDateTime64('1999-01-01 00:00:00.000', 3), 5)

Result:

β”Œβ”€changeDay(toDate('1999-01-01'), 5)─┬─changeDay(toDateTime64('1999-01-01 00:00:00.000', 3), 5)─┐
β”‚                         1999-01-05 β”‚                                  1999-01-05 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

changeHourΒΆ

Modifies the hour component of a date or datetime value to a new specified hour.

SyntaxΒΆ

changeHour(date_or_datetime, value)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns a value of same type as date_or_datetime if the input is DateTime or DateTime64. If the input is a Date, returns DateTime. If the input is a Date32, returns DateTime64.

ExampleΒΆ

SELECT changeHour(toDate('1999-01-01'), 14), changeHour(toDateTime64('1999-01-01 00:00:00.000', 3), 14)

Result:

β”Œβ”€changeHour(toDate('1999-01-01'), 14)─┬─changeHour(toDateTime64('1999-01-01 00:00:00.000', 3), 14)─┐
β”‚                  1999-01-01 14:00:00 β”‚                                    1999-01-01 14:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

changeMinuteΒΆ

Modifies the minute component of a date or datetime value to a new specified minute.

SyntaxΒΆ

changeMinute(date_or_datetime, value)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns a value of same type as date_or_datetime if the input is DateTime or DateTime64. If the input is a Date, returns DateTime. If the input is a Date32, returns DateTime64.

ExampleΒΆ

    SELECT changeMinute(toDate('1999-01-01'), 15), changeMinute(toDateTime64('1999-01-01 00:00:00.000', 3), 15)

Result:

β”Œβ”€changeMinute(toDate('1999-01-01'), 15)─┬─changeMinute(toDateTime64('1999-01-01 00:00:00.000', 3), 15)─┐
β”‚                    1999-01-01 00:15:00 β”‚                                      1999-01-01 00:15:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

changeSecondΒΆ

Modifies the second component of a date or datetime value to a new specified second.

SyntaxΒΆ

changeSecond(date_or_datetime, value)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns a value of same type as date_or_datetime if the input is DateTime or DateTime64. If the input is a Date, returns DateTime. If the input is a Date32, returns DateTime64.

ExampleΒΆ

SELECT changeSecond(toDate('1999-01-01'), 15), changeSecond(toDateTime64('1999-01-01 00:00:00.000', 3), 15)

Result:

β”Œβ”€changeSecond(toDate('1999-01-01'), 15)─┬─changeSecond(toDateTime64('1999-01-01 00:00:00.000', 3), 15)─┐
β”‚                    1999-01-01 00:00:15 β”‚                                      1999-01-01 00:00:15.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addYearsΒΆ

Adds a specified number of years to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addYears(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addYears(date, 1) AS add_years_with_date,
    addYears(date_time, 1) AS add_years_with_date_time,
    addYears(date_time_string, 1) AS add_years_with_date_time_string
β”Œβ”€add_years_with_date─┬─add_years_with_date_time─┬─add_years_with_date_time_string─┐
β”‚          2025-01-01 β”‚      2025-01-01 00:00:00 β”‚         2025-01-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addQuartersΒΆ

Adds a specified number of quarters to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addQuarters(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addQuarters(date, 1) AS add_quarters_with_date,
    addQuarters(date_time, 1) AS add_quarters_with_date_time,
    addQuarters(date_time_string, 1) AS add_quarters_with_date_time_string
β”Œβ”€add_quarters_with_date─┬─add_quarters_with_date_time─┬─add_quarters_with_date_time_string─┐
β”‚             2024-04-01 β”‚         2024-04-01 00:00:00 β”‚            2024-04-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addMonthsΒΆ

Adds a specified number of months to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addMonths(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMonths(date, 6) AS add_months_with_date,
    addMonths(date_time, 6) AS add_months_with_date_time,
    addMonths(date_time_string, 6) AS add_months_with_date_time_string
β”Œβ”€add_months_with_date─┬─add_months_with_date_time─┬─add_months_with_date_time_string─┐
β”‚           2024-07-01 β”‚       2024-07-01 00:00:00 β”‚          2024-07-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addWeeksΒΆ

Adds a specified number of weeks to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addWeeks(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addWeeks(date, 5) AS add_weeks_with_date,
    addWeeks(date_time, 5) AS add_weeks_with_date_time,
    addWeeks(date_time_string, 5) AS add_weeks_with_date_time_string
β”Œβ”€add_weeks_with_date─┬─add_weeks_with_date_time─┬─add_weeks_with_date_time_string─┐
β”‚          2024-02-05 β”‚      2024-02-05 00:00:00 β”‚         2024-02-05 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addDaysΒΆ

Adds a specified number of days to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addDays(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addDays(date, 5) AS add_days_with_date,
    addDays(date_time, 5) AS add_days_with_date_time,
    addDays(date_time_string, 5) AS add_days_with_date_time_string
β”Œβ”€add_days_with_date─┬─add_days_with_date_time─┬─add_days_with_date_time_string─┐
β”‚         2024-01-06 β”‚     2024-01-06 00:00:00 β”‚        2024-01-06 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addHoursΒΆ

Adds a specified number of hours to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addHours(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addHours(date, 12) AS add_hours_with_date,
    addHours(date_time, 12) AS add_hours_with_date_time,
    addHours(date_time_string, 12) AS add_hours_with_date_time_string
β”Œβ”€add_hours_with_date─┬─add_hours_with_date_time─┬─add_hours_with_date_time_string─┐
β”‚ 2024-01-01 12:00:00 β”‚      2024-01-01 12:00:00 β”‚         2024-01-01 12:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addMinutesΒΆ

Adds a specified number of minutes to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addMinutes(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMinutes(date, 20) AS add_minutes_with_date,
    addMinutes(date_time, 20) AS add_minutes_with_date_time,
    addMinutes(date_time_string, 20) AS add_minutes_with_date_time_string
β”Œβ”€add_minutes_with_date─┬─add_minutes_with_date_time─┬─add_minutes_with_date_time_string─┐
β”‚   2024-01-01 00:20:00 β”‚        2024-01-01 00:20:00 β”‚           2024-01-01 00:20:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addSecondsΒΆ

Adds a specified number of seconds to a date, datetime, or string representation of a date/time.

SyntaxΒΆ

addSeconds(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addSeconds(date, 30) AS add_seconds_with_date,
    addSeconds(date_time, 30) AS add_seconds_with_date_time,
    addSeconds(date_time_string, 30) AS add_seconds_with_date_time_string
β”Œβ”€add_seconds_with_date─┬─add_seconds_with_date_time─┬─add_seconds_with_date_time_string─┐
β”‚   2024-01-01 00:00:30 β”‚        2024-01-01 00:00:30 β”‚           2024-01-01 00:00:30.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addMillisecondsΒΆ

Adds a specified number of milliseconds to a datetime or string representation of a datetime.

SyntaxΒΆ

addMilliseconds(date_time, num)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns date_time plus num milliseconds. DateTime64.

ExampleΒΆ

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMilliseconds(date_time, 1000) AS add_milliseconds_with_date_time,
    addMilliseconds(date_time_string, 1000) AS add_milliseconds_with_date_time_string
β”Œβ”€add_milliseconds_with_date_time─┬─add_milliseconds_with_date_time_string─┐
β”‚         2024-01-01 00:00:01.000 β”‚                2024-01-01 00:00:01.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addMicrosecondsΒΆ

Adds a specified number of microseconds to a datetime or string representation of a datetime.

SyntaxΒΆ

addMicroseconds(date_time, num)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns date_time plus num microseconds. DateTime64.

ExampleΒΆ

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMicroseconds(date_time, 1000000) AS add_microseconds_with_date_time,
    addMicroseconds(date_time_string, 1000000) AS add_microseconds_with_date_time_string
β”Œβ”€add_microseconds_with_date_time─┬─add_microseconds_with_date_time_string─┐
β”‚      2024-01-01 00:00:01.000000 β”‚             2024-01-01 00:00:01.000000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addNanosecondsΒΆ

Adds a specified number of nanoseconds to a datetime or string representation of a datetime.

SyntaxΒΆ

addNanoseconds(date_time, num)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns date_time plus num nanoseconds. DateTime64.

ExampleΒΆ

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addNanoseconds(date_time, 1000) AS add_nanoseconds_with_date_time,
    addNanoseconds(date_time_string, 1000) AS add_nanoseconds_with_date_time_string
β”Œβ”€add_nanoseconds_with_date_time─┬─add_nanoseconds_with_date_time_string─┐
β”‚  2024-01-01 00:00:00.000001000 β”‚         2024-01-01 00:00:00.000001000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addIntervalΒΆ

Combines two interval values or an interval with a tuple of intervals.

SyntaxΒΆ

addInterval(interval_1, interval_2)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

Query:

SELECT addInterval(INTERVAL 1 DAY, INTERVAL 1 MONTH);
SELECT addInterval((INTERVAL 1 DAY, INTERVAL 1 YEAR), INTERVAL 1 MONTH);
SELECT addInterval(INTERVAL 2 DAY, INTERVAL 1 DAY);

Result:

β”Œβ”€addInterval(toIntervalDay(1), toIntervalMonth(1))─┐
β”‚ (1,1)                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€addInterval((toIntervalDay(1), toIntervalYear(1)), toIntervalMonth(1))─┐
β”‚ (1,1,1)                                                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€addInterval(toIntervalDay(2), toIntervalDay(1))─┐
β”‚ (3)                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

addTupleOfIntervalsΒΆ

Applies a series of interval additions to a date or datetime value.

SyntaxΒΆ

addTupleOfIntervals(date, intervals)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

Query:

WITH toDate('2018-01-01') AS date
SELECT addTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 MONTH, INTERVAL 1 YEAR))

Result:

β”Œβ”€addTupleOfIntervals(date, (toIntervalDay(1), toIntervalMonth(1), toIntervalYear(1)))─┐
β”‚                                                                           2019-02-02 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractYearsΒΆ

Subtracts a specified number of years from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractYears(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractYears(date, 1) AS subtract_years_with_date,
    subtractYears(date_time, 1) AS subtract_years_with_date_time,
    subtractYears(date_time_string, 1) AS subtract_years_with_date_time_string
β”Œβ”€subtract_years_with_date─┬─subtract_years_with_date_time─┬─subtract_years_with_date_time_string─┐
β”‚               2023-01-01 β”‚           2023-01-01 00:00:00 β”‚              2023-01-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractQuartersΒΆ

Subtracts a specified number of quarters from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractQuarters(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractQuarters(date, 1) AS subtract_quarters_with_date,
    subtractQuarters(date_time, 1) AS subtract_quarters_with_date_time,
    subtractQuarters(date_time_string, 1) AS subtract_quarters_with_date_time_string
β”Œβ”€subtract_quarters_with_date─┬─subtract_quarters_with_date_time─┬─subtract_quarters_with_date_time_string─┐
β”‚                  2023-10-01 β”‚              2023-10-01 00:00:00 β”‚                 2023-10-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractMonthsΒΆ

Subtracts a specified number of months from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractMonths(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMonths(date, 1) AS subtract_months_with_date,
    subtractMonths(date_time, 1) AS subtract_months_with_date_time,
    subtractMonths(date_time_string, 1) AS subtract_months_with_date_time_string
β”Œβ”€subtract_months_with_date─┬─subtract_months_with_date_time─┬─subtract_months_with_date_time_string─┐
β”‚                2023-12-01 β”‚            2023-12-01 00:00:00 β”‚               2023-12-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractWeeksΒΆ

Subtracts a specified number of weeks from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractWeeks(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractWeeks(date, 1) AS subtract_weeks_with_date,
    subtractWeeks(date_time, 1) AS subtract_weeks_with_date_time,
    subtractWeeks(date_time_string, 1) AS subtract_weeks_with_date_time_string
 β”Œβ”€subtract_weeks_with_date─┬─subtract_weeks_with_date_time─┬─subtract_weeks_with_date_time_string─┐
 β”‚               2023-12-25 β”‚           2023-12-25 00:00:00 β”‚              2023-12-25 00:00:00.000 β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractDaysΒΆ

Subtracts a specified number of days from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractDays(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractDays(date, 31) AS subtract_days_with_date,
    subtractDays(date_time, 31) AS subtract_days_with_date_time,
    subtractDays(date_time_string, 31) AS subtract_days_with_date_time_string
β”Œβ”€subtract_days_with_date─┬─subtract_days_with_date_time─┬─subtract_days_with_date_time_string─┐
β”‚              2023-12-01 β”‚          2023-12-01 00:00:00 β”‚             2023-12-01 00:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractHoursΒΆ

Subtracts a specified number of hours from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractHours(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractHours(date, 12) AS subtract_hours_with_date,
    subtractHours(date_time, 12) AS subtract_hours_with_date_time,
    subtractHours(date_time_string, 12) AS subtract_hours_with_date_time_string
β”Œβ”€subtract_hours_with_date─┬─subtract_hours_with_date_time─┬─subtract_hours_with_date_time_string─┐
β”‚      2023-12-31 12:00:00 β”‚           2023-12-31 12:00:00 β”‚              2023-12-31 12:00:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractMinutesΒΆ

Subtracts a specified number of minutes from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractMinutes(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMinutes(date, 30) AS subtract_minutes_with_date,
    subtractMinutes(date_time, 30) AS subtract_minutes_with_date_time,
    subtractMinutes(date_time_string, 30) AS subtract_minutes_with_date_time_string
β”Œβ”€subtract_minutes_with_date─┬─subtract_minutes_with_date_time─┬─subtract_minutes_with_date_time_string─┐
β”‚        2023-12-31 23:30:00 β”‚             2023-12-31 23:30:00 β”‚                2023-12-31 23:30:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractSecondsΒΆ

Subtracts a specified number of seconds from a date, datetime, or string representation of a date/time.

SyntaxΒΆ

subtractSeconds(date, num)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractSeconds(date, 60) AS subtract_seconds_with_date,
    subtractSeconds(date_time, 60) AS subtract_seconds_with_date_time,
    subtractSeconds(date_time_string, 60) AS subtract_seconds_with_date_time_string
β”Œβ”€subtract_seconds_with_date─┬─subtract_seconds_with_date_time─┬─subtract_seconds_with_date_time_string─┐
β”‚        2023-12-31 23:59:00 β”‚             2023-12-31 23:59:00 β”‚                2023-12-31 23:59:00.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractMillisecondsΒΆ

Subtracts a specified number of milliseconds from a datetime or string representation of a datetime.

SyntaxΒΆ

subtractMilliseconds(date_time, num)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns date_time minus num milliseconds. DateTime64.

ExampleΒΆ

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMilliseconds(date_time, 1000) AS subtract_milliseconds_with_date_time,
    subtractMilliseconds(date_time_string, 1000) AS subtract_milliseconds_with_date_time_string
β”Œβ”€subtract_milliseconds_with_date_time─┬─subtract_milliseconds_with_date_time_string─┐
β”‚              2023-12-31 23:59:59.000 β”‚                     2023-12-31 23:59:59.000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractMicrosecondsΒΆ

Subtracts a specified number of microseconds from a datetime or string representation of a datetime.

SyntaxΒΆ

subtractMicroseconds(date_time, num)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns date_time minus num microseconds. DateTime64.

ExampleΒΆ

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMicroseconds(date_time, 1000000) AS subtract_microseconds_with_date_time,
    subtractMicroseconds(date_time_string, 1000000) AS subtract_microseconds_with_date_time_string
β”Œβ”€subtract_microseconds_with_date_time─┬─subtract_microseconds_with_date_time_string─┐
β”‚           2023-12-31 23:59:59.000000 β”‚                  2023-12-31 23:59:59.000000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractNanosecondsΒΆ

Subtracts a specified number of nanoseconds from a datetime or string representation of a datetime.

SyntaxΒΆ

subtractNanoseconds(date_time, num)

ArgumentsΒΆ

ReturnsΒΆ

  • Returns date_time minus num nanoseconds. DateTime64.

ExampleΒΆ

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractNanoseconds(date_time, 1000) AS subtract_nanoseconds_with_date_time,
    subtractNanoseconds(date_time_string, 1000) AS subtract_nanoseconds_with_date_time_string
β”Œβ”€subtract_nanoseconds_with_date_time─┬─subtract_nanoseconds_with_date_time_string─┐
β”‚       2023-12-31 23:59:59.999999000 β”‚              2023-12-31 23:59:59.999999000 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractIntervalΒΆ

Subtracts an interval from another interval or a tuple of intervals.

SyntaxΒΆ

subtractInterval(interval_1, interval_2)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

Query:

SELECT subtractInterval(INTERVAL 1 DAY, INTERVAL 1 MONTH);
SELECT subtractInterval((INTERVAL 1 DAY, INTERVAL 1 YEAR), INTERVAL 1 MONTH);
SELECT subtractInterval(INTERVAL 2 DAY, INTERVAL 1 DAY);

Result:

β”Œβ”€subtractInterval(toIntervalDay(1), toIntervalMonth(1))─┐
β”‚ (1,-1)                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€subtractInterval((toIntervalDay(1), toIntervalYear(1)), toIntervalMonth(1))─┐
β”‚ (1,1,-1)                                                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€subtractInterval(toIntervalDay(2), toIntervalDay(1))─┐
β”‚ (1)                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

subtractTupleOfIntervalsΒΆ

Applies a series of interval subtractions to a date or datetime value.

SyntaxΒΆ

subtractTupleOfIntervals(date, intervals)

ArgumentsΒΆ

ReturnsΒΆ

ExampleΒΆ

Query:

WITH toDate('2018-01-01') AS date SELECT subtractTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 YEAR))

Result:

β”Œβ”€subtractTupleOfIntervals(date, (toIntervalDay(1), toIntervalYear(1)))─┐
β”‚                                                            2016-12-31 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

timeSlotsΒΆ

Generates an array of datetime values representing time slots within a specified duration, starting from a given time and rounded to a defined interval size.

SyntaxΒΆ

timeSlots(StartTime, Duration[, Size])

ArgumentsΒΆ

  • StartTime: The starting time for the interval. DateTime or DateTime64.
  • Duration: The length of the time interval in seconds. UInt32 or Decimal64.
  • Size: The size of each time slot in seconds (optional, default is 1800 for 30 minutes). UInt32 or Decimal64.

ReturnsΒΆ

ExampleΒΆ

SELECT timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600));
SELECT timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299);
SELECT timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0));

Result:

β”Œβ”€timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600))─┐
β”‚ ['2012-01-01 12:00:00','2012-01-01 12:30:00']               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299)─┐
β”‚ ['1980-12-12 20:56:13','1980-12-12 21:01:12','1980-12-12 21:06:11']     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0))─┐
β”‚ ['1980-12-12 20:56:13.0000','1980-12-12 21:01:12.0000','1980-12-12 21:06:11.0000']                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

formatDateTimeΒΆ

Formats a date or datetime value into a string according to a specified format pattern, using MySQL-style format specifiers.

SyntaxΒΆ

formatDateTime(Time, Format[, Timezone])

Alias: DATE_FORMAT.

ArgumentsΒΆ

  • Time: The date or time value to format. Date, Date32, DateTime or DateTime64.
  • Format: A string literal defining the output format using MySQL-style specifiers. String.
  • Timezone: Optional Timezone for the returned value.

ReturnsΒΆ

  • Returns time and date values according to the determined format. String.

Replacement fieldsΒΆ

Using replacement fields, you can define a pattern for the resulting string. "Example" column shows formatting result for 2018-01-02 22:33:44.

| Placeholder | Description

Updated