DatetimeAdd

datetimeAdd принимает значение даты и времени и добавляет к нему некоторую единицу времени. Эта функция полезна при работе с данными временных рядов, помеченными «началом» и «концом», например с данными о сеансах или подписках.

| Синтаксис | Пример | | ———————————————————————————- | ————————————— | | datetimeAdd(column, amount, unit) | datetimeAdd("2021-03-25", 1, "month") | | Принимает значение метки времени или даты и добавляет к нему указанное количество единиц времени. | 2021-04-25 |

Параметры

column может быть любым из:

  • Имя столбца метки времени,

  • пользовательское выражение, которое возвращает datetime или

  • строка в формате "YYYY-MM-DD" или "YYYY-MM-DDTHH:MM:SS" (как показано в примере выше).

unit может быть любым из:

  • “год”

  • “квартал”

  • “месяц”

  • “день”

  • “час”

  • “минута”

  • “секунда”

  • “миллисекунда”

amount:

  • Целое число или десятичное число.

  • Может быть отрицательным числом: datetimeAdd("2021-03-25", -1, "month") вернет 2021-04-25.

Расчет конечной даты

Допустим, вы знаток кофе и хотите следить за свежестью зерен:

| Кофе | Начало | Окончание | | ———————- | —————– | —————– | | DAK Honey Dude | October 31, 2022 | November 14, 2022 | | NO6 Full City Espresso | November 7, 2022 | November 21, 2022 | | Ghost Roaster Giakanja | November 27, 2022 | December 11, 2022 |

Здесь Окончание — это настраиваемый столбец с выражением:

datetimeAdd([Opened On], 14, 'day')

Проверка, попадает ли текущее время между интервалом

Допустим вы хотите проверить, попадает ли сегодняшняя дата между Начальной датой и Датой конца. Предположим, что сегодня — 1 декабря 2022 года.

| Кофейня | Открытие | Закрытие | Все еще актуально сегодня | |————————|——————-|——————-|—————————| | DAK Honey Dude | October 31, 2022 | November 14, 2022 | No | | NO6 Full City Espresso | November 7, 2022 | November 21, 2022 | No | | Ghost Roaster Giakanja | November 27, 2022 | December 11, 2022 | Yes |

Закрытие — это настраиваемый столбец с выражением:

datetimeAdd([Opened On], 14, 'day')

Все еще актуально сегодня использует case для проверки, попадает ли текущая дата (now) между датами в Открыто и Закрыто:

case(between(now, [Opened On], [Finish By]), "Yes", "No")

Допустимые типы данных

| Тип данных | Работает с datetimeAdd | |————————————————————————————————–| ———————— | | Строка | ❌ | | Число | ❌ | | Дата Время | ✅ | | Условие | ❌ | | JSON | ❌ |

Мы используем «timestamp» и «datatime», чтобы говорить о любом временном типе данных, поддерживаемом GlarusBI. Для дополнительной информации о этих типах данных в GlarusBI см. Часовые пояса.

Если ваши временные метки хранятся в базе данных в виде строк или чисел, администратор может преобразовать их в временные метки на странице “Метаданные таблиц”.

Ограничения

Если вы используете MongoDB, datetimeAdd будет работать только в версии 5 и выше.

Связанные функции

В этом разделе рассматриваются функции и формулы, которые работают так же, как выражение datetimeAdd GlarusBI, с примечаниями о том, как выбрать лучший вариант для вашего случая использования.

Выражения GlarusBI

Другие инструменты

Дата Время вычесть

datetimeSubtract и datetimeAdd взаимозаменяемы, так как вы можете использовать отрицательное число для amount. Как правило, рекомендуется избегать двойных отрицаний (например, вычитания отрицательного числа).

datetimeSubtract([Opened On], -14, "day")

does the same thing as

datetimeAdd([Opened On], 14, "day")

SQL

Когда вы запускаете вопрос с помощью конструктора запросов, GlarusBI преобразует ваши графические настройки запроса (фильтры, сводки и т. д.) в запрос и запускает этот запрос. против вашей базы данных, чтобы получить ваши результаты.

Если наши данные образца кофе хранятся в базе данных PostgreSQL:

SELECT opened_on + INTERVAL '14 days' AS finish_by
FROM coffee

эквивалентно выражению datetimeAdd в GlarusBI:

datetimeAdd([Opened On], 14, "day")

Таблицы

Если наши данные образца кофе находятся в электронной таблице, где «Открыто в» находится в столбце A с форматом даты, функция электронной таблицы

A:A + 14

выдает такой же результат как и

datetimeAdd([Opened On], 14, "day")

Большинство инструментов электронных таблиц требуют использования разных функций для разных единиц времени (для Примера вы должны использовать другую функцию, чтобы добавить «месяцы» к дате). datetimeAdd упрощает преобразование всех этих функций в единый непротиворечивый синтаксис.

Python

Предполагая, что данные образца кофе находятся в столбце данных pandas с именем df, вы можете импортировать модуль datetime и использовать функцию timedelta:

df['Finish By'] = df['Opened On'] + datetime.timedelta(days=14)

эквивалентно:

datetimeAdd([Opened On], 14, "day")

Дополнительная информация