sql >> Database >  >> RDS >> PostgreSQL

Het interval-uitvoerformaat instellen in PostgreSQL

Bij het werken met het interval gegevenstype in PostgreSQL, kunt u de manier wijzigen waarop de intervaluitvoer wordt opgemaakt.

U heeft de keuze uit vier formaten waarin uw intervallen kunnen worden uitgevoerd.

Het uitvoerformaat van het intervaltype kan worden ingesteld op een van de volgende stijlen:

  • sql_standard
  • postgres
  • postgres_verbose
  • iso_8601

De standaardstijl is postgres .

Om uw intervalformaat te wijzigen, gebruikt u de SET intervalstyle opdracht.

Voorbeelden

De volgende voorbeelden demonstreren de uitvoer van make_interval() bij gebruik van de verschillende uitvoerstijlen.

sql_standard

Deze stijl voldoet aan de specificatie van de SQL-standaard voor letterlijke intervaltekenreeksen, als de intervalwaarde voldoet aan de beperkingen van de standaard (alleen jaar-maand of alleen dag, zonder vermenging van positieve en negatieve componenten).

Anders ziet de uitvoer eruit als een standaard letterlijke tekenreeks van jaar-maand, gevolgd door een letterlijke tekenreeks voor overdag, met expliciete tekens toegevoegd om intervallen met gemengde tekens ondubbelzinnig te maken.

Hier is een voorbeeld waarin het jaar-maand wordt gebruikt.

SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);

Resultaat:

1-2

Hieronder staat nog een voorbeeld. Deze keer specificeer ik jaren, maanden, weken, dagen, uren, minuten en seconden.

SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultaat:

+1-2 +25 +5:06:07

postgres

postgress is de standaardinstelling.

Deze stijl komt overeen met de uitvoer van Postgres-releases vóór 8.4 wanneer de DateStyle parameter is ingesteld op ISO .

SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultaat:

1 year 2 mons 25 days 05:06:07

postgres_verbose

Deze stijl komt overeen met de uitvoer van Postgres-releases vóór 8.4 wanneer de DateStyle parameter is ingesteld op niet-ISO uitvoer.

SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultaat:

@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs

iso_8601

Deze stijl komt overeen met het "formaat met aanduidingen" beschreven in paragraaf 4.4.3.2 van de ISO 8601-norm.

SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultaat:

P1Y2M25DT5H6M7S

  1. Virtuele index gebruiken in Oracle Database

  2. Aanbevolen procedures voor de lengte van SQL-varchar-kolommen

  3. Hoe COALESCE() werkt in MariaDB

  4. PostgreSQL - HTML-entiteiten vervangen