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 :
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:
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:
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:
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
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:
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:
Ä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-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:
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:
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:
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:
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 :
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:
Ü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.