В этом разделе мы узнаем, как использовать функцию PostgreSQL DATE_TRUNC(). Функция DATE_TRUNC() используется для усечения даты или временной метки до заданного уровня точности. Она позволяет округлить дату или временную метку до определенной единицы измерения, такой как год, квартал, месяц, неделя, день, час и т. д.
Синтаксис функции DATE_TRUNC() в PostgreSQL:
DATE_TRUNC(unit、source)
unit:Указывает единицу, до которой вы хотите усечь дату или временную метку (например, ‘год’, ‘квартал’, ‘месяц’, ‘неделя’, ‘день’, ‘час’ и т.д.).
source:Дата или временная метка, которую необходимо усечь.
Значение единицы измерения должно быть одним из следующих значений:
- century
- decade
- year
- month
- day
- hour
- minute
- second
- microseconds
- milliseconds
Пример функции TRUNC() в PostgreSQL
Ниже приведены примеры использования функции TRUNC() в PostgreSQL.
- Усечение временной метки до начала года: Функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы передаем год в качестве аргумента “единица” и временную метку в качестве аргумента “источник” для того, чтобы усечь дату или временную метку до начала года.す。
SELECT DATE_TRUNC('year', '2024-02-24 15:30:45'::timestamp) AS truncated_date;
Это приведет к усечению временной метки до начала 2024 года.
Результат:

- Усечение временной метки до начала месяца: Функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы передаем месяц в качестве аргумента “единица” и временную метку в качестве аргумента “источник” для того, чтобы усечь дату или временную метку до начала месяца, указанного в дате.
SELECT DATE_TRUNC('month', '2024-02-24 15:30:45'::timestamp) AS truncated_date;
Это приведет к усечению временной метки до начала февраля 2024 года.
Результат:

- Усечение временной метки до начала недели: Функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы передаем неделю в качестве аргумента “единица” и временную метку в качестве аргумента “источник” для того, чтобы усечь дату или временную метку до начала недели, указанной в дате.
SELECT DATE_TRUNC('week', '2024-02-24 15:30:45'::timestamp) AS truncated_date;
Это приведет к усечению временной метки до начала недели, указанной в дате.
Результат:

- Усечение временной метки до ближайшего часа: Функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы будем передавать час в качестве аргумента “единица” и временную метку в качестве аргумента “источник”, чтобы усечь дату или временную метку до ближайшего часа указанной даты.
SELECT DATE_TRUNC('hour', '2024-02-24 15:30:45'::timestamp) AS truncated_date;
Это приведет к усечению временной метки до ближайшего часа для указанной даты.
Результат:

- Усечение временной метки до начала квартала: функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы передаем квартал в качестве аргумента “единица” и временную метку в качестве аргумента “источник” для того, чтобы усечь дату или временную метку до начала квартала для указанной даты.
SELECT DATE_TRUNC('quarter', '2024-02-24 15:30:45'::timestamp) AS truncated_date;
Это приведет к усечению временной метки до начала квартала.
Результат:

- Усечение временной метки до начала декады: Функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы передаем десятилетие в качестве аргумента “единица” и временную метку в качестве аргумента “источник”, чтобы усечь дату или временную метку до начала десятилетия для указанной даты.
SELECT DATE_TRUNC('decade', '2024-02-24'::date) AS truncated_date;
Это приведет к усечению временной метки до начала десятилетия.
Результат:

- Усечение временной метки до начала дня: Функция TRUNC() в PostgreSQL:
В приведенном ниже примере мы передаем день в качестве аргумента “единица” и временную метку в качестве аргумента “источник” для того, чтобы усечь дату или временную метку до начала дня для указанной даты.
SELECT DATE_TRUNC('day', '2024-02-24'::date) AS truncated_date;
Это приведет к усечению временной метки до начала дня.
Результат:
