Колонка created_at типа timestamp. Какое утверждение про created_at::date и DATE_TRUNC('day', created_at) верно?
A
created_at::date отдаёт timestamp, а DATE_TRUNC('day', created_at) отдаёт dateB
created_at::date возвращает тип date, а DATE_TRUNC('day', created_at) возвращает timestampC
DATE_TRUNC('day', created_at) округляет до ближайшего дня, а created_at::date обрезает времяDОба выражения возвращают тип
date и одинаковое значение для любых входных timestampПравильный ответ. Приведение
::date меняет тип, а DATE_TRUNC сохраняет timestamp и обнуляет время ниже указанной гранулярности.Разбор
При created_at::date вы получаете календарную дату без времени, тип результата — date. DATE_TRUNC('day', created_at) возвращает timestamp на 00:00:00 этого дня, тип сохраняется. Это влияет на формат результата и на дальнейшие сравнения и вычисления — например, при JOIN по дате типы должны совпадать.
Проверь себя · 1/3разбор после ответа
В таблице
events(created_at) нужно выбрать события за последние 7 дней с точностью до текущего момента (включая сегодняшние, ещё не завершённые сутки). Какое условие в WHERE корректнее?Ещё вопросы по теме «Даты и время»
- В таблице `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)`?
- Все вопросы по «Даты и время» →