Quando si lavora con l'intervallo tipo di dati in PostgreSQL, puoi cambiare il modo in cui è formattato l'output dell'intervallo.
Puoi scegliere tra quattro formati in cui è possibile stampare i tuoi intervalli.
Il formato di output del tipo di intervallo può essere impostato su uno dei seguenti stili:
sql_standard
postgres
postgres_verbose
iso_8601
Lo stile predefinito è postgres
.
Per modificare il formato dell'intervallo, utilizza SET intervalstyle
comando.
Esempi
Gli esempi seguenti mostrano l'output di make_interval()
quando si utilizzano i diversi stili di output.
sql_standard
Questo stile è conforme alle specifiche dello standard SQL per le stringhe letterali di intervallo, se il valore dell'intervallo soddisfa le restrizioni dello standard (solo anno mese o solo giorno, senza combinazione di componenti positivi e negativi).
In caso contrario, l'output appare come una stringa letterale standard anno-mese seguita da una stringa letterale giorno-ora, con segni espliciti aggiunti per chiarire gli intervalli di segni misti.
Ecco un esempio utilizzando l'anno-mese.
SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);
Risultato:
1-2
Di seguito è riportato un altro esempio. Questa volta ho specificato anni, mesi, settimane, giorni, ore, minuti e secondi.
SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Risultato:
+1-2 +25 +5:06:07
postgres
postgress
è l'impostazione predefinita.
Questo stile corrisponde all'output delle versioni di Postgres precedenti alla 8.4 quando DateStyle
parametro è stato impostato su ISO
.
SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Risultato:
1 year 2 mons 25 days 05:06:07
postgres_verbose
Questo stile corrisponde all'output delle versioni di Postgres precedenti alla 8.4 quando DateStyle
il parametro è stato impostato su non ISO
uscita.
SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Risultato:
@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs
iso_8601
Questo stile corrisponde al "formato con designatori" descritto nella sezione 4.4.3.2 della norma ISO 8601.
SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Risultato:
P1Y2M25DT5H6M7S