date_floor() rounds a date or date-time down to a multiple of
the specified precision.
date_ceiling() rounds a date or date-time up to a multiple of
the specified precision.
date_round() rounds up or down depending on what is closer,
rounding up on ties.
There are separate help pages for rounding dates and date-times:
These functions round the underlying duration itself, relative to an
origin. For example, rounding to 15 hours will construct groups of
15 hours, starting from origin, which defaults to a naive time of
1970-01-01 00:00:00.
If you want to group by components, such as "day of the month", see
date_group().