„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann das "TsRange" von PostgreSQL vereinfachen und optimieren Stunden der Betriebsabfragen?

Wie kann das "TsRange" von PostgreSQL vereinfachen und optimieren Stunden der Betriebsabfragen?

Gepostet am 2025-03-24
Durchsuche:172

How Can PostgreSQL's `tsrange` Simplify and Optimize Hours of Operation Queries?

How to Perform Hours of Operation Queries in PostgreSQL

Original Query Complexity

The original query, intended to identify records that are "open" (within the specified hours of operations), was complex due to the need to handle various scenarios wo die Betriebsstunden um Ende der Woche wickeln können. Um diesen Prozess zu vereinfachen, werden wir einen anderen Ansatz unter Verwendung einer Datenstruktur namens tsRange .

vorstellen, die tsRange

tsrange ein Datentyp in postgresql, der eine Entfernung von Zeitstamps darstellt, ohne Zeitzone darstellt. Es bietet eine bequeme Möglichkeit, Zeitintervalle zu speichern und zu manipulieren.

neu gestalten die Tabellenstruktur

wir ersetzen die vorhandenen Spalten (Openens_on, Closes_on, Openens_at, Closes_at) durch eine einzelne Spalte namens type type tsrange. Hours of operation will be stored as a set of tsrange values.

Example

For example, the following tsrange value represents hours of operation from Wednesday, 6 PM to Thursday, 5 AM:

'[1996-01-03 18:30, 1996-01-04 05:00]'

Abfrage mit tsRange

mit der aktualisierten Tabellenstruktur werden die Abfrage viel einfacher:

SELECT *
FROM hoo
WHERE hours @> f_hoo_time(now())

Die Funktion f_hoo_time () konvertiert einen Zeitstempel mit Zeitzone in einen Zeitstempel, während der Content -Operator (@>) überprüft, ob die aktuelle Zeit in den angegebenen Zeitbereich fällt. empfehlen, einen SP-Gist-Index für die Stundenspalte zu erstellen. Dieser Index ermöglicht eine effiziente Suche in Zeitbereiche, was zu einer schnelleren Abfrageleistung führt. Dieser Ansatz ist effizienter und robuster als die ursprüngliche Abfrage.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3