Postgres может округлять (сокращать) временные метки, используя функцию date_trunc, например:
date_trunc('hour', val)
date_trunc('minute', val)
Я ищу способ обрезать временную метку до ближайшей 5-минутной границы, так что, например, 14:26:57 становится 14:25:00. Прямой способ сделать это выглядит следующим образом:
date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
Поскольку это критически важная часть запроса, мне интересно, является ли это самым быстрым решением, или есть ли какой-либо ярлык (совместимый с Postgres 8.1+), который я упустил.