PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come impostare il formato di output dell'intervallo in PostgreSQL

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