Interval в PostgreSQL: работа с датами и временем
В PostgreSQL "интервал" (interval) является типом данных, предназначенным для хранения временных интервалов. Данный тип позволяет выполнять операции с временем, которые особенно полезны, например, для аналитики, где необходимо работать с различного рода временными интервалами.
Вот несколько примеров, демонстрирующих возможности типа данных интервал:
1. Определение интервала времени:
SELECT INTERVAL '1 day';
Результат: 1 day
2. Сложение и вычитание времени:
SELECT CURRENT_TIME + INTERVAL '2 hours';
Результат: <текущее время> + 2 часа
SELECT CURRENT_TIMESTAMP - INTERVAL '1 week';
Результат: <текущая метка времени> - 1 неделя
3. Прибавление интервала к дате:
SELECT TIMESTAMP '2018-01-01' + INTERVAL '3 months';
Результат: 1 апреля 2018 г.
4. Использование функций округления интервалов:
SELECT AGE('2018-05-20', '2018-01-01')
Результат: 139 days
SELECT DATE_TRUNC('hour', INTERVAL '5 hours 45 minutes');
Результат: 5 hours
5. Использование операторов сравнения:
SELECT NOW() + INTERVAL '1 month' > NOW();
Результат: true
6. Использование функций агрегации:
SELECT AVG(INTERVAL '1 day') FROM generate_series(1,10);
Результат: 1 day
Обращение к типу данных интервал, как и к другим типам данных PostgreSQL, происходит через использование специальных функций, как то: AGE(), CURRENT_DATE, CURRENT_TIMESTAMP, CURRENT_TIME и им подобным.
В целом, тип данных интервал позволяет удобно и гибко работать с временными интервалами, что делает его незаменимым для проведения анализа данных, имеющих отношение к различного рода временным периодам.