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