PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So legen Sie das Intervallausgabeformat in PostgreSQL fest

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