Heim >Datenbank >MySQL-Tutorial >Wie kann man Zeitstempel in PostgreSQL effizient auf das nächste 5-Minuten-Intervall kürzen?
Zeitstempel in Postgres auf die nächste 5-Minuten-Grenze kürzen
Um Zeitstempel auf bestimmte Intervalle zu kürzen, bietet Postgres die Funktion date_trunc. Während die Kürzung auf Stunden oder Minuten unkompliziert ist, stellt das Finden der nächstgelegenen 5-Minuten-Grenze eine Herausforderung dar.
Der unkomplizierte Ansatz besteht darin, date_trunc mit mathematischen Operatoren zu kombinieren, um den Zeitstempel zu runden:
date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
Alternativ Es gibt zwei weitere Methoden:
Going Through Epoch/Unix Zeit:
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
Benchmarks:
Informelle Benchmarks zeigen, dass der direkte Ansatz schneller ist als die Epochenmethode:
Method | Average Runtime |
---|---|
Straightforward | 34.55 seconds |
Epoch | 39.49 seconds |
Fazit:
Der unkomplizierte Ansatz ist die empfohlene Methode für Aufgrund der überlegenen Leistung werden Zeitstempel in Postgres auf die nächste 5-Minuten-Grenze gekürzt. Obwohl die Epochenmethode in einigen Fällen vielseitiger sein kann, ist sie zum Runden von Zeitstempeln nicht so effizient.
Das obige ist der detaillierte Inhalt vonWie kann man Zeitstempel in PostgreSQL effizient auf das nächste 5-Minuten-Intervall kürzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!