F.11. daterange_inclusive
daterange_inclusive — это расширение встроенного диапазонного типа daterange. По умолчанию daterange исключает верхнюю границу диапазона [), а daterange_inclusive — нет []. За исключением границы покрываемого диапазона между daterange и daterange_inclusive нет разницы.
Данный модуль считается «доверенным», то есть его могут устанавливать обычные пользователи, имеющие право CREATE в текущей базе данных.
F.11.1. Обоснование
Иногда бывает удобно выводить временные диапазоны со включённой верхней границей. Например, это применимо к отпускам сотрудников. Если сотрудник в отпуске с 1 января 2025 года по 10 января 2025 года, база данных не сможет полностью вывести этот временной диапазон при использовании диапазонного типа daterange. В этом случае необходимо вручную вычитать один день из вывода. Расширение daterange_inclusive решает эту проблему.
F.11.2. Пример использования
CREATE EXTENSION daterange_inclusive;
SELECT daterange('[2024-01-01,2024-06-01]');
daterange
-------------------------
[2024-01-01,2024-06-02)
SELECT daterange_inclusive('[2024-01-01,2024-06-01]');
daterange_inclusive
-------------------------
[2024-01-01,2024-06-01]