Postgres에서 타임스탬프를 가장 가까운 5분 경계로 자르기
타임스탬프를 특정 간격으로 자르기 위해 Postgres는 date_trunc 기능을 제공합니다. 시간 또는 분으로 자르는 것은 간단하지만 가장 가까운 5분 경계를 찾는 것은 어렵습니다.
간단한 접근 방식에는 date_trunc를 수학 연산자와 결합하여 타임스탬프를 반올림하는 방법이 포함됩니다.
date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
또는 , 두 가지 다른 방법이 있습니다:
Going Through Epoch/Unix 시간:
SELECT to_timestamp( floor(EXTRACT(epoch FROM ht.time) / EXTRACT(epoch FROM interval '5 min')) * EXTRACT(epoch FROM interval '5 min') ) FROM huge_table AS ht LIMIT 4000000
벤치마크:
비공식 벤치마크는 간단한 접근 방식이 시대보다 빠르다는 것을 보여줍니다. 방법:
Method | Average Runtime |
---|---|
Straightforward | 34.55 seconds |
Epoch | 39.49 seconds |
결론:
우수한 성능으로 인해 Postgres에서 타임스탬프를 가장 가까운 5분 경계로 자르는 데 권장되는 간단한 방법입니다. 경우에 따라 에포크 방법이 더 다양할 수 있지만 타임스탬프를 반올림하는 데는 효율적이지 않습니다.
위 내용은 PostgreSQL에서 타임스탬프를 가장 가까운 5분 간격으로 효율적으로 자르는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!