logo

Intervallo PostgreSQL

In questa sezione capiremo il funzionamento di Tipo di dati Intervallo PostgreSQL, e vediamo anche esempi del Tipo di dati intervallo. E per lo più utilizzato Intervallo funzioni , Per esempio, ORA(), TO_CHAR(), EXTRACT(), giustifica_giorni(), giustifica_ore(), giustifica_intervallo(). IL Ingresso e uscita formato per i valori degli intervalli PostgreSQL.

Cos'è il tipo di dati intervallo PostgreSQL?

In PostgreSQL, il Intervallo è un altro tipo di dati utilizzato per archiviare e distribuire Time in anni, mesi, giorni, ore, minuti, secondi, ecc. E il mesi e giorni i valori sono valori interi , mentre il campo dei secondi può essere il valori delle frazioni.

Il valore del tipo di dati dell'intervallo PostgreSQL implica Memoria da 16 byte dimensione, che aiuta a memorizzare un periodo con l'intervallo accettabile da - 178000000 anni a 178000000 anni.

bin in bcd

Nota: il numero di cifre della frazione prese nel secondo campo è noto come precisione p.

Sintassi del tipo di dati Intervallo PostgreSQL

La sintassi del tipo di dati Intervallo PostgreSQL è la seguente:

 @ interval [ fields ] [ (p) ] 

Nella sintassi precedente abbiamo i seguenti parametri:

Parametro Descrizione
campi Il parametro del campo viene utilizzato per mostrare l'ora.
P P viene utilizzato per visualizzare il valore di precisione.
@ Possiamo ignorare il parametro @ poiché è un parametro facoltativo.

Vediamo un esempio di esempio per comprendere meglio come possiamo scrivere i valori dell'intervallo con parametro @ e senza parametro @ :

 @interval '6 months before'; @interval '2 hours 30 minutes'; 

O

 interval '6 months before'; interval '2 hours 30 minutes'; 

Nota: possiamo utilizzare entrambe le affermazioni precedenti poiché corrispondono tra loro. Inoltre, un valore di intervallo può avere un valore di precisione elettivo p con l'intervallo consentito che inizia da 0 a 6.

Esempio del tipo di dati Intervallo PostgreSQL

Vediamo un esempio di esempio per capire come funziona il Tipo di dati Intervallo PostgreSQL lavori.

Nell'esempio seguente, proveremo a trovare l'ora di 2 ore e 30 minuti prima, al ora corrente dell'anno scorso ; utilizzeremo i seguenti comandi:

 SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year'; 

Produzione

Dopo aver eseguito il comando precedente, otterremo l'output seguente, che viene visualizzato 2 ore e 30 minuti prima dell'anno scorso :

Intervallo PostgreSQL

Abbiamo visto l'esempio principale del tipo di dati interval e ne abbiamo compreso il funzionamento. Ora vedremo il formato di input e output di valori di intervallo.

In primo luogo, capiremo il Valore dell'intervallo PostgreSQL per il formato di input :

Formato di input dell'intervallo PostgreSQL

In PostgreSQL, abbiamo quanto segue sintassi dettagliata, che ci aiuta a scrivere i valori dell'intervallo:

 quantity unit [quantity unit...] [direction] 

Abbiamo i parametri seguenti, che vengono utilizzati nella sintassi precedente:

Parametro Descrizione
quantità UN quantità è un numero, che accetta anche segni come + O -
unità IL unità può essere qualsiasi millennio, secolo, decennio, anno, mese, settimana, giorno, ora, minuto, secondo, millisecondo, microsecondo, o l'abbreviazione può essere la seguente y, m, d, ecc. e le forme plurali possono essere the mesi, giorni , eccetera.
direzione IL direzione il parametro può essere fa o la stringa vuota.

Nota: la sintassi precedente viene utilizzata anche per il formato di output dell'intervallo ed è nota come postgres_verbose.

Nell'esempio seguente, visualizzeremo alcuni valori di intervallo in cui utilizziamo il sintassi verbosa :

 INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago'; 

Il formato intervallo ISO 8601

Oltre alla sintassi dettagliata di cui sopra, per scrivere i valori degli intervalli con l'aiuto di ISO 8601-time intervalli, PostgreSQL ci fornisce due modi, che sono i seguenti:

    Formato dei designatori Formato alternativo

Il formato dei designatori per ISO 8601 è il seguente:

 P quantity unit [ quantity unit ...] [ T [ quantity unit ...]] 

Nel formato precedente, il valore dell'intervallo essenziale inizia con il lettera p , e il lettera t viene utilizzato per definire il unità dell'ora del giorno .

La tabella seguente mostra il Intervallo ISO 8601 abbreviazioni delle unità:

Abbreviazione Descrizione
E Anni
M Mesi (per la parte della data)
IN Settimane
D Giorni
H Ore
M Minuti (per la parte temporale)
S Secondi

Nota: la M può essere mesi o minuti a seconda che si trovi prima o dopo la lettera T.

Vediamo un esempio di Designatori ISO 8601 formato per una migliore comprensione:

IL Formato dei designatori ISO 8601 può essere scritto per l'intervallo di 5 anni 4 mesi 3 giorni 2 ore 1 minuto 1 secondo :

 P5Y4M3DT2H1M1S 

E la forma alternativa di ISO8601 è come mostrato di seguito:

 P [ years-months-days ] [ T hours:minutes:seconds ] 

E inizia anche con il la lettera P e la lettera T, che divide il ora e data parti del valore dell'intervallo.

Ad esempio, il Forma alternativa ISO 8601 può essere scritto per 5 anni 4 mesi 3 giorni 2 ore 1 minuto 1 secondo, come mostrato di seguito:

 P0005-04-03T02:01:01 

Formato di output dell'intervallo PostgreSQL

Il formato di output dell'intervallo PostgreSQL dei valori dell'intervallo può essere impostato con l'aiuto di IMPOSTATO intervalstyle comando, come possiamo vedere nell'esempio seguente:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL contiene quattro diversi formati di output, come:

    iso_8601 postgres_verbose Postgres standard sql

Nota: per formattare i valori dell'intervallo, PostgreSQL utilizza lo stile Postgres per impostazione predefinita.

Vediamo un esempio della nostra migliore comprensione:

Il comando seguente viene utilizzato per visualizzare il file 5 anni 4 mesi 3 giorni 2 ore 1 minuto 1 secondo nei quattro diversi formati di output:

Per il formato di output ISO_8601

Nel comando seguente, lo faremo IMPOSTATO IL intervalstyle COME iso_8601 per il valore dell'intervallo sopra menzionato:

 SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second'; 

Produzione

Dopo aver eseguito il comando precedente, otterremo il risultato seguente, che rappresenta il iso_8601 formato di output dell'intervallo:

Intervallo PostgreSQL

Per il formato di output postgres_verbose

Nel comando seguente, lo faremo IMPOSTATO IL intervalstyle COME postgres_verbose per il valore dell'intervallo sopra menzionato:

 SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Produzione

Otterremo il risultato seguente dopo aver implementato il comando precedente, che mostra il file postgres_verbose formato di output dell'intervallo:

percorso impostato in Java
Intervallo PostgreSQL

Per il formato di output Postgres

Nel comando seguente, lo faremo IMPOSTATO IL intervalstyle COME Postgres per il valore dell'intervallo sopra menzionato:

 SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Produzione

Otterremo il risultato seguente dopo aver eseguito con successo il comando precedente, che mostra il file Postgres formato di output dell'intervallo:

Intervallo PostgreSQL

Per il formato di output Sql_standard

Nel comando seguente, lo faremo IMPOSTATO IL intervalstyle COME sql_standard per il valore dell'intervallo sopra menzionato:

 SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Produzione

Otterremo il risultato seguente dopo aver eseguito con successo il comando precedente, che rappresenta il file sql_standard formato di output dell'intervallo:

Intervallo PostgreSQL

Modifica dell'intervallo PostgreSQL in stringa

Possiamo usare il TO_CHAR() funzione per modificare un valore di intervallo in una stringa.

La sintassi per modificare l'intervallo PostgreSQL in stringa

 TO_CHAR(interval,format) 

IL Funzione TO_CHAR() prende il prima affermazione COME un valore di intervallo e un altro come il formato e recupera una stringa, visualizzando l'intervallo nel formato particolare.

Nell'esempio seguente, utilizzeremo la funzione TO_CHAR(), che converte l'intervallo PostgreSQL nel valore stringa:

 SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' ); 

Produzione

Dopo aver eseguito con successo il comando precedente, otterremo il risultato seguente:

Intervallo PostgreSQL

Operatori e funzioni relativi agli intervalli PostgreSQL

Operatori di intervallo

Possiamo usare quanto segue +, -, *, ecc. operatore aritmetico per ottenere i valori dell'intervallo.

Vediamo l'esempio seguente per una migliore comprensione:

Nel comando seguente utilizzeremo il file operatore aritmetico (+) con l'aiuto del tipo di dati intervallo PostgreSQL:

 SELECT INTERVAL '1h 50m' + INTERVAL '5m'; 

Produzione

Otterremo il risultato seguente implementando il comando precedente, come mostrato di seguito:

Intervallo PostgreSQL

Nel comando seguente utilizzeremo il file operatore aritmetico (-) con l'aiuto del tipo di dati intervallo PostgreSQL:

 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

Produzione

Implementando il comando precedente, otterremo il risultato seguente:

grafico di allocazione delle risorse
Intervallo PostgreSQL

Nel comando seguente utilizzeremo il file operatore aritmetico (*) con l'aiuto del tipo di dati intervallo PostgreSQL:

 SELECT 400 * INTERVAL '5 minute'; 

Produzione

Implementando il comando precedente, otterremo il risultato seguente:

Intervallo PostgreSQL

Estrazione di dati da un intervallo PostgreSQL

Possiamo usare il ESTRATTO() funzione per estrarre i campi da un valore di intervallo, ad esempio, anno, mese, data, ecc .

La sintassi per estrarre i dati da un intervallo PostgreSQL

 EXTRACT(field FROM interval) 

Nella sintassi precedente, possiamo usare il file anno, mese, data, ora, minuti , ecc., nel parametro del campo.

IL estratto la funzione restituisce un valore di tipo doppia precisione se vogliamo estrarre dall'intervallo.

Nell'esempio seguente utilizzeremo il file ESTRATTO() funzione per recuperare il valore a precisione doppia.

 SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' ); 

Produzione

Dopo aver eseguito con successo il comando precedente, otterremo l'output seguente, che visualizza il file parte della data per la doppia precisione valori come mostrato di seguito:

Intervallo PostgreSQL

Regolazione dei valori dell'intervallo PostgreSQL

Abbiamo due funzioni, giustifica_giorni e giustifica_ore in PostgreSQL, che ci permette di modificare il file intervallo di 24 ore considera come un giorno e l'intervallo di 30 giorni considera come un mese .

Vediamo un esempio per capire come stiamo regolando i valori dell'intervallo PostgreSQL:

Nel comando seguente utilizzeremo il file Funzione giustifica_giorni e giustifica_ore:

 SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours'); 

Produzione

Dopo aver eseguito il comando precedente, otterremo il seguente risultato, che mostra l'intervallo di 30 giorni come un mese e il intervallo di 24 ore come un giorno :

Intervallo PostgreSQL

Oltre a ciò, il giustificare_intervallo la funzione regola i valori dell'intervallo con l'aiuto di giustifica_giorni e giustifica_ore con aggiunte modifiche al segno:

Nell'esempio seguente utilizzeremo la funzione justifiy_interval con il comando SELECT:

 SELECT justify_interval(interval '6 months -1 hour'); 

Produzione

Otterremo il seguente output dopo aver implementato il comando precedente:

Intervallo PostgreSQL

Panoramica

Nel Tipo di dati Intervallo PostgreSQL sezione, abbiamo appreso i seguenti argomenti:

  • IL Dati dell'intervallo PostgreSQL type viene utilizzato per archiviare e distribuire un periodo in anni, mesi, giorni, ore, minuti, secondi.
  • Ne abbiamo usati diversi Funzioni di intervallo , Per esempio, ORA(), TO_CHAR(), per migliorare i valori dell'intervallo dalla tabella specifica.
  • I valori dell'intervallo PostgreSQL hanno entrambi ingresso e uscita formato intervallo.
  • Possiamo regolare i valori dell'intervallo PostgreSQL con l'aiuto di Funzioni giustifica_giorni(), giustifica_ore, giustifica_intervallo().
  • Possiamo usare il ESTRATTO() funzione per estrarre i valori del campo intervallo.