Hello. There is date_trunc(interval, timestamptz, timezone) function. First parameter can be '5 year', '2 month', '6 hour', '3 hour', '15 minute', '10 second' etc.
should not be named interval_trunc instead? In this case the good name can be hard to choose, but with the name date_trunc it can be hard to find it.