最佳答案
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 + 兼容)。