ホームページ > データベース > mysql チュートリアル > PostgreSQL でタイムスタンプを最も近い 5 分間隔に効率的に切り詰める方法

PostgreSQL でタイムスタンプを最も近い 5 分間隔に効率的に切り詰める方法

Barbara Streisand
リリース: 2024-12-26 15:52:10
オリジナル
663 人が閲覧しました

How to Efficiently Truncate Timestamps to the Nearest 5-Minute Interval in PostgreSQL?

Postgres でタイムスタンプを最も近い 5 分境界に切り詰める

タイムスタンプを特定の間隔に切り詰めるために、Postgres は date_trunc 関数を提供します。時間または分に切り捨てるのは簡単ですが、最も近い 5 分の境界を見つけるのは困難です。

簡単なアプローチでは、date_trunc と数学演算子を組み合わせてタイムスタンプを丸めます。

date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
ログイン後にコピー

または、他に 2 つのメソッドが存在します:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート