Now¶
now
возвращает текущую дату и время с использованием часового пояса отчета GlarusBI.
Создание условной логики с использованием текущей даты или времени¶
Допустим у вас есть некоторые данные о проекте, и вы хотите добавить столбец статуса для каждой задачи. Мы предположим, что сегодняшняя дата и время - 22 ноября 2022 года, 12:00:00.
| Задача | Старт | Дедлайн | Статус | |————|—————————–|——————————–|—————–| | Draft | November 1, 2022, 12:00:00 | November 30, 2022, 12:00:00 | In progress | | Review | November 15, 2022, 12:00:00 | November 19, 2022, 12:00:00 | Needs extension | | Edit | November 22, 2022, 12:00:00 | November 22, 2022, 12:00:00 | DUE RIGHT NOW! |
Чтобы отметить задачу в процессе выполнения, вы можете использовать выражение:
now >= [Start] AND now < [Deadline]
Чтобы проверить нужно ли вам попросить о продлении:
now >= [Start] AND now >= [Deadline]
Если же вы ищете адреналин (и у вас есть данные в реальном времени), вы можете отметить задачи, которые должны быть выполнены прямо сейчас:
now = [Deadline]
Чтобы настроить столбец Статус, который объединяет все три ситуации выше, вы обернете все в выражение case
:
case(now >= [Start] AND now < [Deadline], "In progress",
now >= [Start] AND now >= [Deadline], "Needs extension",
now = [Deadline], "DUE RIGHT NOW!")
Типы данных¶
| Типы данных | Returned by now
|
|—————————————————————————————————-| ——————– |
| String | ❌ |
| Number | ❌ |
| Timestamp | ✅ |
| Boolean | ❌ |
| JSON | ❌ |
now
возвращает timestamp with time zone
, если часовые пояса поддерживаются вашей базой данных, в противном случае now
возвращает timestamp without time zone
.
Для дополнительной информации о том, как эти типы данных ведут себя в GlarusBI, см. Часовые пояса.
Ограничения¶
now
вообще может и не быть now (в вашем местном времени), если вы не живете в том же часовом поясе, что и часовой пояс отчета GlarusBI.
Если вам необходимо сравнить now
с колонкой в другом часовом поясе, используйте convertTimezone для сдвига обеих колонок в один часовой пояс. Например:
convertTimezone(now, 'UTC', <report timezone>) >= convertTimezone([Deadline], 'UTC', <source time zone>)
Связанные функции¶
Описывают различные способы сделать то же самое.
SQL¶
Когда вы запускаете вопрос с помощью конструктора запросов, GlarusBI преобразует настройки конструктора запросов (фильтры, сводки и т. д.) в SQL-запрос и запускает этот запрос в вашей базе данных для получения результатов.
По умолчанию now
использует часовой пояс отчета GlarusBI. Если ваш администратор не установил часовой пояс отчета, now
будет использовать часовой пояс вашей базы данных.
Допустим вы используете базу данных Postgres. Если часовой пояс отчета GlarusBI установлен на EST, вы получите now
в EST:
SELECT CURRENT_TIMESTAMP AT TIME ZONE 'EST'
Если же вы не установили часовой пояс отчета, вы получите now
в часовом поясе вашей базы данных Postgres (обычно UTC):
SELECT CURRENT_TIME
Электронные таблицы¶
Функция электронных таблиц NOW()
получает текущую дату и время в часовом поясе вашей операционной системы (время, которое находится на вашем компьютере или мобильном устройстве).
Python¶
Вы можете использовать pd.Timestamp.now()
с помощью модуля pandas
. Это даст вам объект Timestamp
с текущей датой и временем в часовом поясе вашей операционной системы.