logo

PostgreSQL-Intervall

In diesem Abschnitt werden wir die Funktionsweise des verstehen PostgreSQL-Intervall-Datentyp, und wir sehen auch Beispiele des Intervalldatentyp. Und meistens wird Intervall verwendet Funktionen , Zum Beispiel, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). Der Eingabe und Ausgabe Format für PostgreSQL-Intervallwerte.

Was ist der PostgreSQL-Intervalldatentyp?

In PostgreSQL ist die Intervall ist ein weiterer Datentyp, der zum Speichern und Bereitstellen von Zeit in verwendet wird Jahre, Monate, Tage, Stunden, Minuten, Sekunden, usw. Und die Monate und Tage Werte sind Ganzzahlwerte , während die zweites Feld kann das sein Bruchwerte.

Der Wert des PostgreSQL-Intervalldatentyps umfasst 16 Byte Speicher Größe, die dabei hilft, einen Zeitraum im akzeptablen Bereich von - zu speichern. 178000000 Jahre bis 178000000 Jahre.

Anakonda vs. Pythonschlange

Hinweis: Die Anzahl der Bruchstellen im zweiten Feld wird als Genauigkeit p bezeichnet.

Syntax des PostgreSQL-Intervall-Datentyps

Die Syntax des PostgreSQL-Intervall-Datentyps lautet wie folgt:

 @ interval [ fields ] [ (p) ] 

In der obigen Syntax haben wir die folgenden Parameter:

Parameter Beschreibung
Felder Der Feldparameter wird verwendet, um die Zeit anzuzeigen.
P P wird verwendet, um den Präzisionswert anzuzeigen.
@ Wir können den @-Parameter ignorieren, da es sich um einen optionalen Parameter handelt.

Sehen wir uns ein Beispielbeispiel an, um besser zu verstehen, wie wir die Intervallwerte schreiben können mit @-Parameter und ohne @-Parameter :

 @interval '6 months before'; @interval '2 hours 30 minutes'; 

ODER

 interval '6 months before'; interval '2 hours 30 minutes'; 

Hinweis: Wir können beide obigen Aussagen verwenden, da sie einander entsprechen. Darüber hinaus kann ein Intervallwert einen optionalen Präzisionswert p haben, wobei der zulässige Bereich von 0 bis 6 reicht.

Beispiel für den PostgreSQL-Intervall-Datentyp

Sehen wir uns ein Beispielbeispiel an, um zu verstehen, wie das funktioniert PostgreSQL-Intervall-Datentyp funktioniert.

Im folgenden Beispiel werden wir versuchen, die Zeit von zu ermitteln 2 Stunden 30 Minuten vorher, Bei der aktuelle Zeit des letzten Jahres ; Wir werden die folgenden Befehle verwenden:

 SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year'; 

Ausgabe

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Ausgabe, die angezeigt wird 2 Stunden 30 Minuten vor letztem Jahr :

PostgreSQL-Intervall

Wir haben das erste Beispiel des Intervalldatentyps gesehen und verstehen seine Funktionsweise. Jetzt sehen wir das Eingabe- und Ausgabeformat von Intervallwerte.

Zuerst werden wir das verstehen PostgreSQL-Intervallwert für das Eingabeformat :

PostgreSQL-Intervall-Eingabeformat

In PostgreSQL haben wir Folgendes ausführliche Syntax, was uns hilft, die Intervallwerte zu schreiben:

 quantity unit [quantity unit...] [direction] 

Wir haben die folgenden Parameter, die in der obigen Syntax verwendet werden:

Parameter Beschreibung
Menge A Menge ist eine Zahl, die auch Zeichen wie akzeptiert + oder -
Einheit Der Einheit kann beliebig sein Jahrtausend, Jahrhundert, Jahrzehnt, Jahr, Monat, Woche, Tag, Stunde, Minute, Sekunde, Millisekunde, Mikrosekunde, oder Abkürzung kann wie folgt lauten j, m, t usw. und die Pluralformen können die sein Monate, Tage , usw.
Richtung Der Richtung Parameter sein kann ago oder die leere Zeichenfolge.

Hinweis: Die obige Syntax wird auch für das Intervallausgabeformat verwendet und ist als postgres_verbose bekannt.

Im folgenden Beispiel zeigen wir einige Intervallwerte an, in denen wir verwenden ausführliche Syntax :

 INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago'; 

Das ISO 8601-Intervallformat

Neben der ausführlichen Syntax oben können Sie die Intervallwerte auch mit Hilfe von schreiben ISO 8601-Zeit Intervallen bietet uns PostgreSQL die beiden folgenden Möglichkeiten:

    Bezeichnerformat Alternatives Format

Das Bezeichnerformat für ISO 8601 ist wie folgt:

 P quantity unit [ quantity unit ...] [ T [ quantity unit ...]] 

Im obigen Format beginnt der Intervallwert essential mit dem Buchstabe P , und das Buchstabe T wird verwendet, um die zu definieren Uhrzeiteinheit .

Die folgende Tabelle zeigt die ISO 8601-Intervall Abkürzungen der Einheiten:

Abkürzung Beschreibung
UND Jahre
M Monate (für den Datumsteil)
IN Wochen
D Tage
H Std
M Minuten (für den Zeitteil)
S Sekunden

Hinweis: Das M kann Monate oder Minuten sein, je nachdem, ob es vor oder nach dem Buchstaben T steht.

Sehen wir uns ein Beispiel an ISO 8601-Bezeichner Format zum besseren Verständnis:

Der ISO 8601-Bezeichnerformat kann für das Intervall von geschrieben werden 5 Jahre 4 Monate 3 Tage 2 Stunden 1 Minute 1 Sekunde :

 P5Y4M3DT2H1M1S 

Und die alternative Form von ISO 8601 ist wie unten gezeigt:

 P [ years-months-days ] [ T hours:minutes:seconds ] 

Und es beginnt auch mit dem Buchstabe P und der Buchstabe T, was die spaltet Zeit und Datum Teile des Intervallwerts.

Zum Beispiel die Alternativformular nach ISO 8601 geschrieben werden kann 5 Jahre 4 Monate 3 Tage 2 Stunden 1 Minute 1 Sekunde, Wie nachfolgend dargestellt:

 P0005-04-03T02:01:01 

PostgreSQL-Intervallausgabeformat

Das PostgreSQL-Intervallausgabeformat der Intervallwerte kann mit Hilfe von eingestellt werden SATZ Intervallstil Befehl, wie wir im folgenden Beispiel sehen können:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL enthält vier verschiedene Ausgabeformate, wie zum Beispiel:

    iso_8601 postgres_verbose Postgres SQL-Standard

Hinweis: Um die Intervallwerte zu formatieren, verwendet PostgreSQL standardmäßig den Postgres-Stil.

Sehen wir uns ein Beispiel für unser besseres Verständnis an:

Der folgende Befehl wird verwendet, um die anzuzeigen 5 Jahre 4 Monate 3 Tage 2 Stunden 1 Minute 1 Sekunde in den vier verschiedenen Ausgabeformaten:

Für ISO_8601-Ausgabeformat

Im folgenden Befehl werden wir dies tun SATZ Die Intervallstil als iso_8601 für den oben genannten Intervallwert:

 SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second'; 

Ausgabe

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir das folgende Ergebnis, das das darstellt iso_8601 Intervallausgabeformat:

PostgreSQL-Intervall

Für das Ausgabeformat postgres_verbose

Im folgenden Befehl werden wir dies tun SATZ Die Intervallstil als postgres_verbose für den oben genannten Intervallwert:

 SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Ausgabe

Nach der Implementierung des obigen Befehls erhalten wir das folgende Ergebnis, das das zeigt postgres_verbose Intervallausgabeformat:

Bild in CSS zentrieren
PostgreSQL-Intervall

Für das Postgres-Ausgabeformat

Im folgenden Befehl werden wir dies tun SATZ Die Intervallstil als Postgres für den oben genannten Intervallwert:

 SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Ausgabe

Nach erfolgreicher Ausführung des obigen Befehls erhalten wir das folgende Ergebnis, das Folgendes zeigt Postgres Intervallausgabeformat:

PostgreSQL-Intervall

Für Sql_standard-Ausgabeformat

Im folgenden Befehl werden wir dies tun SATZ Die Intervallstil als sql_standard für den oben genannten Intervallwert:

 SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Ausgabe

Nach erfolgreicher Ausführung des obigen Befehls erhalten wir das folgende Ergebnis, das das darstellt sql_standard Intervallausgabeformat:

PostgreSQL-Intervall

Ändern des PostgreSQL-Intervalls in einen String

Wir können das nutzen TO_CHAR() Funktion zum Ändern eines Intervallwerts in eine Zeichenfolge.

Die Syntax zum Ändern des PostgreSQL-Intervalls in einen String

 TO_CHAR(interval,format) 

Der TO_CHAR()-Funktion nimmt die erste Aussage als ein Intervallwert und noch einer als der Format und ruft eine Zeichenfolge ab, die das Intervall im jeweiligen Format anzeigt.

Im folgenden Beispiel verwenden wir die Funktion TO_CHAR(), die das PostgreSQL-Intervall in den String-Wert umwandelt:

 SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' ); 

Ausgabe

Nach erfolgreicher Ausführung des obigen Befehls erhalten wir das folgende Ergebnis:

PostgreSQL-Intervall

PostgreSQL-Intervallbezogene Operatoren und Funktionen

Intervalloperatoren

Wir können Folgendes verwenden +, -, * usw. arithmetischer Operator um die Intervallwerte zu erhalten.

Sehen wir uns zum besseren Verständnis das folgende Beispiel an:

Im folgenden Befehl verwenden wir die Arithmetischer Operator (+) mit Hilfe des PostgreSQL-Intervalldatentyps:

 SELECT INTERVAL '1h 50m' + INTERVAL '5m'; 

Ausgabe

Bei der Implementierung des obigen Befehls erhalten wir das folgende Ergebnis, wie unten gezeigt:

PostgreSQL-Intervall

Im folgenden Befehl verwenden wir die Arithmetischer Operator (-) mit Hilfe des PostgreSQL-Intervalldatentyps:

 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

Ausgabe

Bei der Implementierung des obigen Befehls erhalten wir das folgende Ergebnis:

PostgreSQL-Intervall

Im folgenden Befehl verwenden wir die Arithmetischer Operator (*) mit Hilfe des PostgreSQL-Intervalldatentyps:

 SELECT 400 * INTERVAL '5 minute'; 

Ausgabe

Bei der Implementierung des obigen Befehls erhalten wir das folgende Ergebnis:

PostgreSQL-Intervall

Extrahieren von Daten aus einem PostgreSQL-Intervall

Wir können das nutzen EXTRAKT() Funktion zum Extrahieren der Felder aus einem Intervallwert, z. B. Jahr, Monat, Datum usw .

Die Syntax zum Extrahieren von Daten aus einem PostgreSQL-Intervall

 EXTRACT(field FROM interval) 

In der obigen Syntax können wir die verwenden Jahr, Monat, Datum, Stunde, Minuten usw. im Feldparameter.

Der Extrakt Die Funktion gibt einen Wert vom Typ doppelte Genauigkeit zurück, wenn wir aus dem Intervall extrahieren möchten.

Im folgenden Beispiel verwenden wir die EXTRAKT() Funktion zum Abrufen des Werts mit doppelter Genauigkeit.

 SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' ); 

Ausgabe

Nach erfolgreicher Ausführung des obigen Befehls erhalten wir die folgende Ausgabe, die Folgendes anzeigt Datumsteil für die doppelte Genauigkeit Werte wie unten gezeigt:

PostgreSQL-Intervall

Anpassen der PostgreSQL-Intervallwerte

Wir haben zwei Funktionen, justify_days und justify_hours in PostgreSQL, was es uns ermöglicht, die zu ändern Intervall von 24 Stunden betrachten als einmal und das Intervall von 30 Tag betrachten als ein Monat .

Sehen wir uns ein Beispiel an, um zu verstehen, wie wir die PostgreSQL-Intervallwerte anpassen:

Im folgenden Befehl verwenden wir die justify_days- und justify_hours-Funktion:

 SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours'); 

Ausgabe

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir das folgende Ergebnis, das das Intervall von anzeigt 30 Tage als ein Monat und das Intervall von 24 Stunden als ein Tag :

PostgreSQL-Intervall

Darüber hinaus ist die justify_interval Funktion regelt die Intervallwerte mit Hilfe von justify_days und justify_hours mit zusätzlichen Zeichenänderungen:

Im folgenden Beispiel verwenden wir die Funktion justifiy_interval mit dem SELECT-Befehl:

 SELECT justify_interval(interval '6 months -1 hour'); 

Ausgabe

c# datetime

Nach der Implementierung des obigen Befehls erhalten wir die folgende Ausgabe:

PostgreSQL-Intervall

Überblick

Im PostgreSQL-Intervall-Datentyp Abschnitt haben wir die folgenden Themen gelernt:

  • Der PostgreSQL-Intervalldaten Der Typ wird zum Speichern und Bereitstellen eines Zeitraums in verwendet Jahre, Monate, Tage, Stunden, Minuten, Sekunden.
  • Wir haben verschiedene verwendet Intervallfunktionen , Zum Beispiel, NOW(), TO_CHAR(), um Intervallwerte aus der jeweiligen Tabelle zu erweitern.
  • Die PostgreSQL-Intervallwerte haben beides Eingabe und Ausgabe Intervallformat.
  • Mithilfe von können wir die PostgreSQL-Intervallwerte anpassen Funktionen justify_days(), justify_hours, justify_interval().
  • Wir können das nutzen EXTRAKT() Funktion zum Extrahieren der Intervallfeldwerte.