Beim Arbeiten mit dem Intervall Datentyp in PostgreSQL können Sie die Formatierung der Intervallausgabe ändern.
Sie haben die Wahl zwischen vier Formaten, in denen Ihre Intervalle ausgegeben werden können.
Das Ausgabeformat des Intervalltyps kann auf einen der folgenden Stile eingestellt werden:
sql_standard
postgres
postgres_verbose
iso_8601
Der Standardstil ist postgres
.
Um Ihr Intervallformat zu ändern, verwenden Sie den SET intervalstyle
Befehl.
Beispiele
Die folgenden Beispiele demonstrieren die Ausgabe von make_interval()
bei der Verwendung der verschiedenen Ausgabestile.
sql_standard
Dieser Stil entspricht der Spezifikation des SQL-Standards für Intervall-Literalzeichenfolgen, wenn der Intervallwert die Einschränkungen des Standards erfüllt (entweder nur Jahr/Monat oder nur Tageszeit, ohne Vermischung positiver und negativer Komponenten).
Andernfalls sieht die Ausgabe aus wie eine standardmäßige Jahr-Monat-Literalzeichenfolge, gefolgt von einer Tageszeit-Literalzeichenfolge, wobei explizite Vorzeichen hinzugefügt wurden, um Intervalle mit gemischten Vorzeichen eindeutig zu machen.
Hier ist ein Beispiel mit Jahr-Monat.
SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);
Ergebnis:
1-2
Unten ist ein weiteres Beispiel. Dieses Mal gebe ich Jahre, Monate, Wochen, Tage, Stunden, Minuten und Sekunden an.
SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Ergebnis:
+1-2 +25 +5:06:07
postgres
postgress
ist die Standardeinstellung.
Dieser Stil entspricht der Ausgabe von Postgres-Versionen vor 8.4, wenn der DateStyle
Parameter wurde auf ISO
gesetzt .
SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Ergebnis:
1 year 2 mons 25 days 05:06:07
postgres_verbose
Dieser Stil entspricht der Ausgabe von Postgres-Versionen vor 8.4, wenn der DateStyle
Parameter wurde auf Nicht-ISO
gesetzt Ausgabe.
SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Ergebnis:
@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs
iso_8601
Dieser Stil entspricht dem „Format mit Bezeichnern“, das in Abschnitt 4.4.3.2 des ISO-8601-Standards beschrieben wird.
SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Ergebnis:
P1Y2M25DT5H6M7S