PostgreSQL でタイムスタンプを 5 分間隔に効率的に切り詰める方法
PostgreSQL でタイムスタンプを 5 分間隔に効率的に切り捨てる
タイムスタンプを特定の境界に切り捨てることは、データベース処理で頻繁に行われる操作です。 Postgres の場合、date_trunc 関数はタイムスタンプを時または分に丸める簡単な方法を提供します。ただし、最も近い 5 分間隔に切り捨てるには、よりカスタマイズされたアプローチが必要です。
単純なアプローチ
5 分切り詰めの一般的な解決策は、date_trunc と整数の除算と乗算操作:
date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
代替方法
タイムスタンプを 5 分間隔に切り捨てるには、2 つの代替方法が存在します:
方法 1:エポック算術
このメソッドは、タイムスタンプをエポック/UNIX 時間に変換し、最も近い 5 分間隔に切り捨ててから、タイムスタンプに変換し直すことによって計算します。次のクエリは、このアプローチを示しています。
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
方法 2: date_trunc と date_part
この方法は単純なアプローチに似ていますが、date_trunc と date_part を別々に使用します。丸めを実現するために。次のクエリは、この方法を示しています。
SELECT date_trunc('hour', ht.time) + date_part('minute', ht.time)::int / 5 * interval '5 min' FROM huge_table AS ht
パフォーマンスの比較
大きなテーブルでのパフォーマンス テストでは、直接的なアプローチが両方の代替方法よりも優れていることがわかりました。結果は次のとおりです。
Method | Run 1 (seconds) | Run 2 (seconds) | Run 3 (seconds) |
---|---|---|---|
Epoch Arithmetic | 39.368 | - | 39.526 |
date_trunc and date_part | 34.189 | - | 37.028 |
結論
代替方法はある程度の汎用性とシンプルさを提供しますが、date_trunc と date_part を使用した単純なアプローチがタイムスタンプを切り捨てるための最速のソリューションを提供します。 Postgres では 5 分間隔に。
以上がPostgreSQL でタイムスタンプを 5 分間隔に効率的に切り詰める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
