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ΒΆ
year: Year. Integer, Float or Decimal.month: Month. Integer, Float or Decimal.day: Day. Integer, Float or Decimal.day_of_year: Day of the year. Integer, Float or Decimal.
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ΒΆ
year: Year. Integer, Float or Decimal.month: Month (optional). Integer, Float or Decimal.day: Day. Integer, Float or Decimal.
If month is omitted then day should take a value between 1 and 365, otherwise it should take a value between 1 and 31.
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ΒΆ
year: Year. Integer, Float or Decimal.month: Month. Integer, Float or Decimal.day: Day. Integer, Float or Decimal.hour: Hour. Integer, Float or Decimal.minute: Minute. Integer, Float or Decimal.second: Second. Integer, Float or Decimal.timezone: Timezone for the returned value (optional).
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ΒΆ
year: Year (0-9999). Integer, Float or Decimal.month: Month (1-12). Integer, Float or Decimal.day: Day (1-31). Integer, Float or Decimal.hour: Hour (0-23). Integer, Float or Decimal.minute: Minute (0-59). Integer, Float or Decimal.second: Second (0-59). Integer, Float or Decimal.precision: Optional precision of the sub-second component (0-9). Integer.
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ΒΆ
ReturnsΒΆ
- DateTime64(6)
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ΒΆ
- Timezone. String.
ExampleΒΆ
SELECT timezone()
Result:
ββtimezone()ββββββ
β America/Denver β
ββββββββββββββββββ
serverTimeZoneΒΆ
Provides the timezone configured for the server.
SyntaxΒΆ
serverTimeZone()
Alias: serverTimezone.
ReturnsΒΆ
- Timezone. String.
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, becausetoTimezonechanges the timezone of a column (timezone is an attribute ofDateTime*types).
ReturnsΒΆ
- Date and time. DateTime.
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ΒΆ
value: Date and time. DateTime or DateTime64.
ReturnsΒΆ
- Timezone name. String.
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ΒΆ
value: Date and time. DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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.
| Mode | First day of week | Range |
|---|---|---|
| 0 | Monday | 1-7: Monday = 1, Tuesday = 2, ..., Sunday = 7 |
| 1 | Monday | 0-6: Monday = 0, Tuesday = 1, ..., Sunday = 6 |
| 2 | Sunday | 0-6: Sunday = 0, Monday = 1, ..., Saturday = 6 |
| 3 | Sunday | 1-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ΒΆ
value: a DateTime or DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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ΒΆ
value: DateTime or DateTime64.
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
The return type of toStartOf*, toLastDayOf*, toMonday, timeSlot functions described in this section is determined by the configuration parameter enable_extended_results_for_datetime_functions which is 0 by default.
Behavior for
enable_extended_results_for_datetime_functions = 0:- Functions
toStartOfYear,toStartOfISOYear,toStartOfQuarter,toStartOfMonth,toStartOfWeek,toLastDayOfWeek,toLastDayOfMonth,toMondayreturnDateorDateTime. - Functions
toStartOfDay,toStartOfHour,toStartOfFifteenMinutes,toStartOfTenMinutes,toStartOfFiveMinutes,toStartOfMinute,timeSlotreturnDateTime. Though these functions can take values of the extended typesDate32andDateTime64as an argument, passing them a time outside the normal range (year 1970 to 2149 forDate/ 2106 forDateTime) produces wrong results.
- Functions
enable_extended_results_for_datetime_functions = 1:- Functions
toStartOfYear,toStartOfISOYear,toStartOfQuarter,toStartOfMonth,toStartOfWeek,toLastDayOfWeek,toLastDayOfMonth,toMondayreturnDateorDateTimeif their argument is aDateorDateTime, and they returnDate32orDateTime64if their argument is aDate32orDateTime64. - Functions
toStartOfDay,toStartOfHour,toStartOfFifteenMinutes,toStartOfTenMinutes,toStartOfFiveMinutes,toStartOfMinute,timeSlotreturnDateTimeif their argument is aDateorDateTime, and they returnDateTime64if their argument is aDate32orDateTime64.
- Functions
toStartOfYearΒΆ
Truncates a date or datetime value to the beginning of its respective year.
SyntaxΒΆ
toStartOfYear(value)
ArgumentsΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
The behavior of parsing incorrect dates is implementation specific. The implementation may return zero date, throw an exception, or do "natural" overflow.
toLastDayOfMonthΒΆ
Adjusts a date or datetime value to the last day of its month.
SyntaxΒΆ
toLastDayOfMonth(value)
Alias: LAST_DAY
ArgumentsΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a Date, Date32, DateTime or DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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 thevalueparameter. String.
ReturnsΒΆ
- Input value without sub-seconds. DateTime64.
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 thevalueparameter. String.
ReturnsΒΆ
- Input value with sub-milliseconds. DateTime64.
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 thevalueparameter. String.
ReturnsΒΆ
- Input value with sub-microseconds. DateTime64.
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 thevalueparameter. String.
ReturnsΒΆ
- Input value with nanoseconds. DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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ΒΆ
value: a DateTime or DateTime64.
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 ofunitintervals. 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ΒΆ
- The start of the specified interval. Date, Date32, DateTime or DateTime64.
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ΒΆ
date: Date to convert to a time. Date/DateTime/DateTime64.timezone(optional): Timezone for the returned value. String.
ReturnsΒΆ
- DateTime with date equated to
1970-01-02while preserving the time.
If the date input argument contained sub-second components, They are dropped in the returned DateTime value with second-accuracy.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
date: Date or date with time. Date/DateTime/DateTime64.
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ΒΆ
value: The value with date or date with time. Date, Date32, DateTime or DateTime64.
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ΒΆ
value: The value with date or date with time. Date, Date32, DateTime or DateTime64.
ReturnsΒΆ
valueconverted 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.
| Mode | First day of week | Range | Week 1 is the first week ... |
|---|---|---|---|
| 0 | Sunday | 0-53 | with a Sunday in this year |
| 1 | Monday | 0-53 | with 4 or more days this year |
| 2 | Sunday | 1-53 | with a Sunday in this year |
| 3 | Monday | 1-53 | with 4 or more days this year |
| 4 | Sunday | 0-53 | with 4 or more days this year |
| 5 | Monday | 0-53 | with a Monday in this year |
| 6 | Sunday | 1-53 | with 4 or more days this year |
| 7 | Monday | 1-53 | with a Monday in this year |
| 8 | Sunday | 1-53 | contains January 1 |
| 9 | Monday | 1-53 | contains 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,nsmicrosecond,microseconds,us,umillisecond,milliseconds,mssecond,seconds,ss,sminute,minutes,mi,nhour,hours,hh,hday,days,dd,dweek,weeks,wk,wwmonth,months,mm,mquarter,quarters,qq,qyear,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 bothstartdateandenddate. If not specified, timezones ofstartdateandenddateare 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,nsmicrosecond,microseconds,us,umillisecond,milliseconds,mssecond,seconds,ss,sminute,minutes,mi,nhour,hours,hh,hday,days,dd,dweek,weeks,wk,wwmonth,months,mm,mquarter,quarters,qq,qyear,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 bothstartdateandenddate. If not specified, timezones ofstartdateandenddateare 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 DateTime64microsecond- Compatible only with DateTime64milisecond- Compatible only with DateTime64secondminutehourdayweekmonthquarteryearunitargument 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 thevalueparameter.
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:secondminutehourdayweekmonthquarteryear
value: Value of interval to add. Int.date: The date or date with time to whichvalueis 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:secondminutehourdayweekmonthquarteryear
value: Value of interval to subtract. Int.date: The date or date with time from whichvalueis 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:secondminutehourdayweekmonthquarteryear
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:secondminutehourdayweekmonthquarteryear
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ΒΆ
date: The date or date with time to whichintervalis added. Date, Date32, DateTime, DateTime64, or String.interval: Interval to add. Interval.
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ΒΆ
date: The date or date with time from whichintervalis subtracted. Date, Date32, DateTime, DateTime64, or String.interval: Interval to subtract. Interval.
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ΒΆ
timezone: Timezone name for the returned value (optional).
ReturnsΒΆ
- Current date and time. DateTime.
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ΒΆ
timezone: Timezone name for the returned value (optional).
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ΒΆ
- Current date. Date.
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.
Though this function can take values of the extended types Date32 and DateTime64 as an argument, passing it a time outside the normal range (year 1970 to 2149 for Date / 2106 for DateTime) produces wrong results.
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ΒΆ
date_or_datetime: a Date, Date32, DateTime or DateTime64.value: a new value of the year. Integer.
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ΒΆ
date_or_datetime: a Date, Date32, DateTime or DateTime64.value: a new value of the month. Integer.
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ΒΆ
date_or_datetime: a Date, Date32, DateTime or DateTime64.value: a new value of the day. Integer.
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ΒΆ
date_or_datetime: a Date, Date32, DateTime or DateTime64.value: a new value of the hour. Integer.
ReturnsΒΆ
- Returns a value of same type as
date_or_datetimeif the input isDateTimeorDateTime64. 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ΒΆ
date_or_datetime: a Date, Date32, DateTime or DateTime64.value: a new value of the minute. Integer.
ReturnsΒΆ
- Returns a value of same type as
date_or_datetimeif the input isDateTimeorDateTime64. 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ΒΆ
date_or_datetime: a Date, Date32, DateTime or DateTime64.value: a new value of the second. Integer.
ReturnsΒΆ
- Returns a value of same type as
date_or_datetimeif the input isDateTimeorDateTime64. 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ΒΆ
date: Date / date with time to add specified number of years to. Date/Date32/DateTime/DateTime64, String.num: Number of years to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumyears. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of quarters to. Date/Date32/DateTime/DateTime64, String.num: Number of quarters to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumquarters. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of months to. Date/Date32/DateTime/DateTime64, String.num: Number of months to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnummonths. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of weeks to. Date/Date32/DateTime/DateTime64, String.num: Number of weeks to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumweeks. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of days to. Date/Date32/DateTime/DateTime64, String.num: Number of days to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumdays. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of hours to. Date/Date32/DateTime/DateTime64, String.num: Number of hours to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumhours. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of minutes to. Date/Date32/DateTime/DateTime64, String.num: Number of minutes to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumminutes. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to add specified number of seconds to. Date/Date32/DateTime/DateTime64, String.num: Number of seconds to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateplusnumseconds. Date/Date32/DateTime/DateTime64.
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ΒΆ
date_time: Date with time to add specified number of milliseconds to. DateTime/DateTime64, String.num: Number of milliseconds to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
date_timeplusnummilliseconds. 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ΒΆ
date_time: Date with time to add specified number of microseconds to. DateTime/DateTime64, String.num: Number of microseconds to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
date_timeplusnummicroseconds. 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ΒΆ
date_time: Date with time to add specified number of nanoseconds to. DateTime/DateTime64, String.num: Number of nanoseconds to add. (U)Int*, Float*.
ReturnsΒΆ
- Returns
date_timeplusnumnanoseconds. 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ΒΆ
interval_1: First interval or tuple of intervals. Interval, Tuple(Interval).interval_2: Second interval to be added. Interval.
ReturnsΒΆ
Intervals of the same type are combined into a single interval. For instance if toIntervalDay(1) and toIntervalDay(2) are passed then the result is (3) rather than (1,1).
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ΒΆ
date: Date or date with time. Date/Date32/DateTime/DateTime64.intervals: Tuple of intervals to add todate. Tuple(Interval).
ReturnsΒΆ
- Returns
datewith addedintervals. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of years from. Date/Date32/DateTime/DateTime64, String.num: Number of years to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumyears. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of quarters from. Date/Date32/DateTime/DateTime64, String.num: Number of quarters to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumquarters. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of months from. Date/Date32/DateTime/DateTime64, String.num: Number of months to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnummonths. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of weeks from. Date/Date32/DateTime/DateTime64, String.num: Number of weeks to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumweeks. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of days from. Date/Date32/DateTime/DateTime64, String.num: Number of days to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumdays. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of hours from. Date/Date32/DateTime/DateTime64, String.num: Number of hours to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumhours. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of minutes from. Date/Date32/DateTime/DateTime64, String.num: Number of minutes to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumminutes. Date/Date32/DateTime/DateTime64.
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ΒΆ
date: Date / date with time to subtract specified number of seconds from. Date/Date32/DateTime/DateTime64, String.num: Number of seconds to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
dateminusnumseconds. Date/Date32/DateTime/DateTime64.
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ΒΆ
date_time: Date with time to subtract specified number of milliseconds from. DateTime/DateTime64, String.num: Number of milliseconds to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
date_timeminusnummilliseconds. 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ΒΆ
date_time: Date with time to subtract specified number of microseconds from. DateTime/DateTime64, String.num: Number of microseconds to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
date_timeminusnummicroseconds. 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ΒΆ
date_time: Date with time to subtract specified number of nanoseconds from. DateTime/DateTime64, String.num: Number of nanoseconds to subtract. (U)Int*, Float*.
ReturnsΒΆ
- Returns
date_timeminusnumnanoseconds. 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ΒΆ
interval_1: First interval or tuple of intervals. Interval, Tuple(Interval).interval_2: Second interval to be negated. Interval.
ReturnsΒΆ
Intervals of the same type are combined into a single interval. For instance if toIntervalDay(2) and toIntervalDay(1) are passed then the result is (1) rather than (2,1).
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ΒΆ
date: Date or date with time. Date/Date32/DateTime/DateTime64.intervals: Tuple of intervals to subtract fromdate. Tuple(Interval).
ReturnsΒΆ
- Returns
datewith subtractedintervals. Date/Date32/DateTime/DateTime64.
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ΒΆ
- An array of DateTime or DateTime64 values.
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