Перейти к содержимому

Функции даты и времени

Функции дат принимают поля «Дата» и «Дата и время» и даты, которые вернули другие функции (today(), date(...)). Если дату нужно написать прямо в формуле, используйте date(2026, 5, 11) или текст в формате "2026-05-11". Русская запись 11.05.2026 внутри формулы не подходит: её можно прочитать неверно.

  • today() (СЕГОДНЯ): сегодняшняя дата.
  • now() (ТДАТА): сегодня и текущее время.
today() // "2026-05-11"
date_diff([Дата покупки], today(), 'days') // дней с покупки

Собирает дату из года, месяца и дня. Январь равен 1. По-русски ДАТА.

date(2026, 1, 1) // "2026-01-01"
date(year_of(today()), 12, 31) // последний день текущего года

Разница b − a в указанной единице.

  • 'days': целое число дней.
  • 'months': целое число месяцев (по календарю).
  • 'years': целое число лет.
date_diff([Дата покупки], today(), 'days')
date_diff([Дата покупки], today(), 'months')
date_diff([Дата рождения], today(), 'years') // возраст

Результат может быть отрицательным, если a позже b.

Сдвиг даты на N единиц.

add_days(today(), 30) // через 30 дней
add_months([Дата покупки], 12) // ровно через год
add_years([Дата рождения], 18) // дата совершеннолетия

Извлечь компонент даты как число.

  • 'year': год (4 цифры).
  • 'month': месяц (1–12).
  • 'day': день месяца (1–31).
  • 'dayofweek': день недели по ISO: 1 = понедельник, 7 = воскресенье.
  • 'hour', 'minute': для дат с временем.
date_part([Дата платежа], 'month') // → 5
date_part([Дата платежа], 'dayofweek') // → 6 (суббота)

Сокращения для самых частых вызовов date_part:

year_of([Дата платежа]) // = date_part([Дата платежа], 'year'), по-русски ГОД
month_of([Дата платежа]) // по-русски МЕСЯЦ
day_of([Дата платежа]) // по-русски ДЕНЬ

Первое число месяца / года, в котором лежит дата.

month_start(today()) // "2026-05-01"
year_start(today()) // "2026-01-01"

Удобно для группировок по месяцу.

true для субботы/воскресенья.

is_weekend([Дата платежа])
if(is_weekend([Дата платежа]), "Выходной", "Будний день")
  • Невалидная дата на входе → результат null.
  • Пустое значение → null.
  • Сравнение дат знаками < и > не работает: эти знаки сравнивают только числа. Сравнивайте через date_diff. Например, date_diff([Срок], today(), 'days') > 0 означает, что срок прошёл.
  • Пишут дату текстом в произвольном формате. Внутри формулы используйте date(год, месяц, день) или "ГГГГ-ММ-ДД". Слова «вчера», «завтра» не работают.
  • Сравнивают дату с числом. Не сработает, приводите через date_diff.
  • Ожидают, что month_of(today()) == 5 сработает для строкового «май». Эта функция возвращает число 5, а не строку.