Поле «Дата изменения» в Baserow - автоматический таймстамп

Поле «Дата изменения» - это автоматическое поле только для чтения, которое проставляет строке точную дату и время последней правки, внесённой пользователем. Статья описывает, что это за поле и как оно себя ведёт, как добавить его в таблицу, какие действия запускают обновление таймстампа, а какие нет, и как обойти это ограничение с помощью подстановки и формулы, если нужно отслеживать изменения в связанных таблицах.

Поле «Дата изменения» в Baserow

Что такое поле «Дата изменения»

Поле «Дата изменения» - это автоматическое поле, недоступное для редактирования, которое показывает дату и время последней правки строки пользователем.

Когда создаётся новая строка , значение поля «Дата изменения» совпадает со значением поля «Дата создания» . Этот таймстамп обновляется каждый раз, когда пользователь редактирует любое редактируемое поле в этой строке.

Важная особенность: значение поля «Дата изменения» никогда не откатывается назад. Если отредактировать ячейку, а затем нажать «Отменить», время в поле «Дата изменения» будет отражать момент действия «Отменить», а не время до правки.

Как добавить поле «Дата изменения»

Добавление поля

  1. В таблице добавьте новое поле .
  2. Выберите Дата изменения в списке типов поля.
  3. Задайте имя поля (например, «Последнее обновление»).
  4. Нажмите Создать.

По умолчанию это поле отслеживает изменения в любом редактируемом поле строки.

Поле можно ограничить так, чтобы оно показывало время изменения только для конкретного поля.

Отслеживание изменений в вычисляемых полях

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

Что запускает обновление «Даты изменения»

  • Ручной ввод в ячейку (текст, число и другие типы).
  • Выбор варианта (одиночный выбор, множественный выбор).
  • Добавление или удаление строки в поле «Связь с таблицей».

Что не запускает обновление

  • Формулы: если формула пересчитывается (например, today() меняется на следующий день или {Цена} * {Количество} обновляется), поле «Дата изменения» не изменится.
  • Изменения в связанных данных: если изменить данные внутри связанной записи (например, обычное поле «Статус» в связанной таблице «Задачи»), таймстамп «Дата изменения» в текущей таблице не обновится.

Поле «Дата изменения» отслеживает, кто редактировал строку и когда. Пассивные изменения, вычисленные Baserow в фоновом режиме, не считаются пользовательскими правками.

Обходной путь: отслеживание изменений в связанных строках

Если нужно видеть время последнего изменения строки или любых связанных с ней данных, одного поля «Дата изменения» недостаточно. Вместо этого можно объединить поле подстановки с полем формулы .

Сценарий: у вас есть таблица «Проекты», связанная с таблицей «Задачи» через поле связи с таблицей . Вы хотите, чтобы «Проект» отображался как «Обновлён», когда меняется любая связанная «Задача».

Шаг 1. Отследите время в исходной таблице

  1. Перейдите в связанную таблицу (например, «Задачи»).
  2. Создайте новое поле типа Дата изменения.
  3. Назовите его «Задача: дата изменения».

Шаг 2. Выведите это время в основной таблице

  1. Перейдите в основную таблицу (например, «Проекты»).
  2. Создайте поле подстановки .
  3. Укажите таблицу «Задачи» и выберите созданное поле «Задача: дата изменения».
  4. Назовите это поле «Подстановка: изменение задачи».

Шаг 3. Сравните даты формулой

Создайте новое поле формулы в таблице «Проекты», чтобы сравнить локальное время правки проекта с временем правки задачи. Формула вернёт более позднюю из двух дат.

Формула:

if(
    date_diff('s', field('Last modified'), field('Lookup: Task Modified')) < 0,
    field('Lookup: Task Modified'),
    field('Last modified')
)

Как это работает:

  • Функция date_diff вычисляет разницу в секундах между локальной правкой и правкой в связанной таблице.
  • Оператор if проверяет, какая из дат более поздняя.
  • Формула выводит более свежую дату, давая «настоящий» таймстамп последнего изменения.

Часто задаваемые вопросы

В чём разница между «Датой изменения» и «Изменено пользователем»? Эти поля работают в паре: «Дата изменения» показывает, когда произошла последняя правка (дату и время), а «Изменено пользователем» показывает, кто внёс последнюю правку.

В чём разница между «Датой изменения» и «Датой создания»? «Дата создания» устанавливается один раз при создании строки и больше никогда не меняется. «Дата изменения» обновляется при каждой правке строки.

Запускают ли обновление формулы или другие вычисляемые поля? Нет. Поле «Дата изменения» отслеживает только правки, внесённые непосредственно пользователем. Оно не реагирует на автоматические изменения в вычисляемых полях вроде формул , подстановок или сводов , которые обновляются из-за изменения исходных данных.

Запускает ли обновление поле «Связь с таблицей»? Здесь есть особый случай: если вы добавляете или удаляете связь в поле связи с таблицей , это считается пользовательской правкой и запускает обновление. Но если данные внутри связанной строки меняются (например, отредактировано имя связанной записи в её собственной таблице), это не считается правкой текущей строки и обновление не запускается.

Что дальше

Чтобы узнать, кто внёс последнюю правку, а не только когда она произошла, читайте «Поле “Изменено пользователем”» . Чтобы разобраться во всех типах полей даты и часовых поясах, смотрите «Поле даты в Baserow» и «Работу с часовыми поясами» .

Проверено OpenNix LLC · Обновлено