F.11. daterange_inclusive

daterange_inclusive is an extension to the built-in daterange range type. By default, daterange excludes the upper bound of the range — [), whereas daterange_inclusive does not — []. Other than the covered range bound, there are no other differences between daterange and daterange_inclusive.

This module is considered trusted, that is, it can be installed by non-superusers who have CREATE privilege on the current database.

F.11.1. Rationale

At times, it is more convenient to output date ranges with inclusive upper bounds. For example, it may apply to employees' absences. If an employee is absent from January 1, 2025, to January 10, 2025, using the daterange range type will prevent the database from outputting this date range in its entirety. In such cases, you would need to manually subtract one day from the output. The daterange_inclusive extension addresses this issue.

F.11.2. Example Usage

   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]