Какое описание лучше всего соответствует типу timestamptz в PostgreSQL?
AЭто строковый тип, в котором всегда хранится исходная таймзона пользователя без приведения к UTC
BЭто тип, который хранит абсолютный момент времени, а при выводе учитывает таймзону сессии или указанную явно
CЭто тот же
date, но с более точным форматом хранения значений, не различающим часовые поясаDЭто тип для дат и времени, который нельзя использовать в сравнениях, сортировке и индексах из-за таймзон
Правильный ответ.
timestamptz описывает момент времени; отображение и приведение зависят от таймзоны сессии или указанной явно.Разбор
timestamptz хранит абсолютный момент времени, нормализуя его к UTC. При отображении и некоторых преобразованиях используется таймзона сессии или явно заданная в выражении. В отличие от timestamp без таймзоны, timestamptz помогает корректно работать с событиями из разных регионов и не ломается при сравнениях и сортировке. Это не строка и не более точная версия date.
Проверь себя · 1/3разбор после ответа
Для сравнения метрик по неделям нужно получить начало предыдущей недели. Какое выражение вернёт начало предыдущей недели относительно
current_date?Ещё вопросы по теме «Даты и время»
- В таблице `events(user_id, created_at)` поле `created_at` имеет тип отметки времени с долями секунд. Как корректно посчитать количество событий по дням?
- Есть таблица `orders(created_at, amount)`, где `created_at` имеет тип `timestamp`. Как посчитать выручку по месяцам?
- В таблице `events(created_at)` нужно выбрать события за последние 7 дней с точностью до текущего момента (включая сегодняшние, ещё не завершённые сутки). Какое условие в `WHERE` корректнее?
- Как получить начало текущей недели (недельный бакет) по текущей дате в PostgreSQL?
- Колонка `created_at` имеет тип `timestamp`. Какой тип данных вернёт `DATE_TRUNC('day', created_at)`?
- Все вопросы по «Даты и время» →