diff --git a/docs/en/sql-reference/functions/other-functions.md b/docs/en/sql-reference/functions/other-functions.md index 566eff76584..378fc821df9 100644 --- a/docs/en/sql-reference/functions/other-functions.md +++ b/docs/en/sql-reference/functions/other-functions.md @@ -660,21 +660,26 @@ SELECT ## formatReadableTimeDelta -Given a time interval (delta) in seconds, this function returns a time delta with year/month/day/hour/minute/second as string. +Given a time interval (delta) in seconds, this function returns a time delta with year/month/day/hour/minute/second/millisecond/microsecond/nanosecond as string. **Syntax** ``` sql -formatReadableTimeDelta(column[, maximum_unit]) +formatReadableTimeDelta(column[, maximum_unit, minimum_unit]) ``` **Arguments** - `column` — A column with a numeric time delta. -- `maximum_unit` — Optional. Maximum unit to show. Acceptable values `seconds`, `minutes`, `hours`, `days`, `months`, `years`. - -Example: +- `maximum_unit` — Optional. Maximum unit to show. + * Acceptable values: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. + * Default value: `years`. +- `minimum_unit` — Optional. Minimum unit to show. All smaller units are truncated. + * Acceptable values: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. + * If explicitly specified value is bigger than `maximum_unit`, an exception will be thrown. + * Default value: `seconds` if `maximum_unit` is `seconds` or bigger, `nanoseconds` otherwise. +**Example** ``` sql SELECT arrayJoin([100, 12345, 432546534]) AS elapsed, @@ -703,6 +708,20 @@ SELECT └────────────┴─────────────────────────────────────────────────────────────────┘ ``` +```sql +SELECT + arrayJoin([100, 12345, 432546534.00000006]) AS elapsed, + formatReadableTimeDelta(elapsed, 'minutes', 'nanoseconds') AS time_delta +``` + +```text +┌────────────elapsed─┬─time_delta─────────────────────────────────────┐ +│ 100 │ 1 minute and 40 seconds │ +│ 12345 │ 205 minutes and 45 seconds │ +│ 432546534.00000006 │ 7209108 minutes, 54 seconds and 60 nanoseconds │ +└────────────────────┴────────────────────────────────────────────────┘ +``` + ## parseTimeDelta Parse a sequence of numbers followed by something resembling a time unit. diff --git a/docs/ru/sql-reference/functions/other-functions.md b/docs/ru/sql-reference/functions/other-functions.md index 78608aaf817..835aed934d5 100644 --- a/docs/ru/sql-reference/functions/other-functions.md +++ b/docs/ru/sql-reference/functions/other-functions.md @@ -659,9 +659,11 @@ SELECT └────────────────┴───────────────────┘ ``` + ## formatReadableTimeDelta {#formatreadabletimedelta} -Принимает дельту времени в секундах. Возвращает дельту времени с (год, месяц, день, час, минута, секунда) в виде строки. +Принимает дельту времени в секундах. Возвращает дельту времени в виде строки. +Есть возможность указать наиболее крупную единицу измерения для вывода (год, месяц, день, час, минута, секунда, милли/микро/наносекунда). **Синтаксис** @@ -671,10 +673,16 @@ formatReadableTimeDelta(column[, maximum_unit]) **Аргументы** -- `column` — Столбец с числовой дельтой времени. -- `maximum_unit` — Опциональный параметр. Максимальная единица измерения для отображения. Допустимые значения: секунды, минуты, часы, дни, месяцы, годы. +- `column` — Столбец с числовой дельтой времени. +- `maximum_unit` — Опциональный параметр. Максимальная единица измерения для отображения. + * Допустимые значения: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. + * Значение по умолчанию: `years`. +- `minimum_unit` — Опциональный параметр. Минимальная единица измерения для отображения. Более мелкие единицы будут отброшены. + * Допустимые значения: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. + * Если минимальная единица задана явно и превышает максимальную единицу, будет выкинуто исключение. + * Значение по умолчанию: `seconds` если максимальная единица -- секунда или более крупный интервал, в противном случае -- `nanoseconds`. -Пример: +**Пример** ``` sql SELECT