Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tipi di dati e valori letterali relativi agli intervalli
È possibile utilizzare un tipo di dati a intervalli per memorizzare le durate di tempo in unità quali,,,seconds, minuteshours, days e. months years I tipi di dati e i valori letterali degli intervalli possono essere utilizzati nei calcoli data/ora, ad esempio aggiungendo intervalli a date e timestamp, sommando intervalli e sottraendo un intervallo da una data o un timestamp. I valori letterali degli intervalli possono essere utilizzati come valori di input per intervallare le colonne dei tipi di dati in una tabella.
Sintassi del tipo di dati a intervalli
Per specificare un tipo di dati a intervalli per memorizzare una durata di tempo in anni e mesi:
INTERVAL year_to_month_qualifier
Per specificare un tipo di dati a intervalli per memorizzare una durata in giorni, ore, minuti e secondi:
INTERVAL day_to_second_qualifier [ (fractional_precision) ]
Sintassi dell'intervallo letterale
Per specificare un intervallo letterale per definire una durata di tempo in anni e mesi:
INTERVAL quoted-string year_to_month_qualifier
Per specificare un intervallo letterale per definire una durata in giorni, ore, minuti e secondi:
INTERVAL quoted-string day_to_second_qualifier [ (fractional_precision) ]
Arguments (Argomenti)
- stringa tra virgolette
-
Specifica un valore numerico positivo o negativo che specifica una quantità e l'unità data/ora come stringa di input. Se la stringa tra virgolette contiene solo un valore numerico, AWS Clean Rooms determina le unità tra year_to_month_qualifier o day_to_second_qualifier. Ad
'23' MONTH1 year 11 monthsesempio-2 days 0 hours 0 minutes 0.0 seconds'1-2' MONTH,'-2' DAYrappresenta1 year 2 months,'13 day 1 hour 1 minute 1.123 seconds' SECONDrappresenta, rappresenta e rappresenta.13 days 1 hour 1 minute 1.123 secondsPer ulteriori informazioni sui formati di output di un intervallo, vedereStili di intervallo. - qualificazione anno_per_mese
-
Speciifica l'intervallo dell'intervallo. Se si utilizza un qualificatore e si crea un intervallo con unità di tempo più piccole del qualificatore, AWS Clean Rooms tronca e scarta le parti più piccole dell'intervallo. I valori validi per year_to_month_qualifier sono:
-
YEAR -
MONTH -
YEAR TO MONTH
-
- day_to_second_qualifier
-
Speciifica l'intervallo dell'intervallo. Se si utilizza un qualificatore e si crea un intervallo con unità di tempo più piccole del qualificatore, AWS Clean Rooms tronca e scarta le parti più piccole dell'intervallo. I valori validi per day_to_second_qualifier sono:
-
DAY -
HOUR -
MINUTE -
SECOND -
DAY TO HOUR -
DAY TO MINUTE -
DAY TO SECOND -
HOUR TO MINUTE -
HOUR TO SECOND -
MINUTE TO SECOND
L'output del valore letterale INTERVAL viene troncato al componente INTERVAL più piccolo specificato. Ad esempio, quando si utilizza un qualificatore MINUTE, scarta le unità di tempo inferiori a MINUTE. AWS Clean Rooms
select INTERVAL '1 day 1 hour 1 minute 1.123 seconds' MINUTEIl valore risultante viene troncato a.
'1 day 01:01:00' -
- precisione_frazionaria
-
Parametro opzionale che specifica il numero di cifre frazionarie consentite nell'intervallo. L'argomento fractional_precision deve essere specificato solo se l'intervallo contiene SECOND. Ad esempio,
SECOND(3)crea un intervallo che consente solo tre cifre frazionarie, ad esempio 1,234 secondi. Il numero massimo di cifre frazionarie è sei.
La configurazione della sessione interval_forbid_composite_literals determina se viene restituito un errore quando viene specificato un intervallo con le parti DA ANNO A MESE e DA GIORNO A SECONDO.
Aritmetica degli intervalli
È possibile utilizzare valori di intervallo con altri valori di data e ora per eseguire operazioni aritmetiche. Le tabelle seguenti descrivono le operazioni disponibili e il tipo di dati risultante da ciascuna operazione.
Nota
Le operazioni che possono produrre entrambe le cose date e timestamp i risultati lo fanno in base alla più piccola unità di tempo coinvolta nell'equazione. Ad esempio, quando si aggiunge un interval a, date il risultato è a date se si tratta di un intervallo DA ANNO A MESE e un timestamp se si tratta di un intervallo DA UN GIORNO A UN SECONDO.
Le operazioni in cui il primo operando è un interval producono i seguenti risultati per il secondo operando specificato:
| Operatore | Data | Time stamp | Interval | Numerico |
|---|---|---|---|---|
| - | N/D | N/D | Interval | N/D |
| + | Data | Data/ora | Interval | N/D |
| * | N/D | N/D | N/D | Interval |
| / | N/D | N/D | N/D | Interval |
Le operazioni in cui il primo operando è a date producono i seguenti risultati per il secondo operando specificato:
| Operatore | Data | Time stamp | Interval | Numerico |
|---|---|---|---|---|
| - | Numerico | Interval | Data/ora | Data |
| + | N/D | N/D | N/D | N/D |
Le operazioni in cui il primo operando è a timestamp producono i seguenti risultati per il secondo operando specificato:
| Operatore | Data | Time stamp | Interval | Numerico |
|---|---|---|---|---|
| - | Numerico | Interval | Time stamp | Time stamp |
| + | N/D | N/D | N/D | N/D |
Stili di intervallo
-
postgres— segue lo stile PostgreSQL. Questa è l’impostazione predefinita. -
postgres_verbose— segue lo stile verboso di PostgreSQL. -
sql_standard— segue lo stile letterale a intervalli standard SQL.
Il comando seguente imposta lo stile dell'intervallo su. sql_standard
SET IntervalStyle to 'sql_standard';
formato di output postgres
Di seguito è riportato il formato di output per lo stile degli postgres intervalli. Ogni valore numerico può essere negativo.
'<numeric> <unit> [, <numeric> <unit> ...]'
select INTERVAL '1-2' YEAR TO MONTH::textvarchar --------------- 1 year 2 mons
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::textvarchar ------------------ 1 day 02:03:04.5678
formato di output postgres_verbose
La sintassi di postgres_verbose è simile a postgres, ma gli output di postgres_verbose contengono anche l'unità di tempo.
'[@] <numeric> <unit> [, <numeric> <unit> ...] [direction]'
select INTERVAL '1-2' YEAR TO MONTH::textvarchar ----------------- @ 1 year 2 mons
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::textvarchar --------------------------- @ 1 day 2 hours 3 mins 4.56 secs
formato di output sql_standard
I valori dell'intervallo da anno a mese sono formattati come segue. Se si specifica un segno negativo prima dell'intervallo, si indica che l'intervallo è un valore negativo e si applica all'intero intervallo.
'[-]yy-mm'
I valori dell'intervallo da giorno a secondo sono formattati come segue.
'[-]dd hh:mm:ss.ffffff'
SELECT INTERVAL '1-2' YEAR TO MONTH::textvarchar ------- 1-2
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::textvarchar --------------- 1 2:03:04.5678
Esempi di tipi di dati a intervalli
Gli esempi seguenti mostrano come utilizzare i tipi di dati INTERVAL con le tabelle.
create table sample_intervals (y2m interval month, h2m interval hour to minute); insert into sample_intervals values (interval '20' month, interval '2 days 1:1:1.123456' day to second); select y2m::text, h2m::text from sample_intervals;y2m | h2m ---------------+----------------- 1 year 8 mons | 2 days 01:01:00
update sample_intervals set y2m = interval '2' year where y2m = interval '1-8' year to month; select * from sample_intervals;y2m | h2m ---------+----------------- 2 years | 2 days 01:01:00
delete from sample_intervals where h2m = interval '2 1:1:0' day to second; select * from sample_intervals;y2m | h2m -----+-----
Esempi di valori letterali a intervalli
Gli esempi seguenti vengono eseguiti con lo stile dell'intervallo impostato su. postgres
L'esempio seguente mostra come creare un valore letterale INTERVAL di 1 anno.
select INTERVAL '1' YEARintervaly2m --------------- 1 years 0 mons
Se si specifica una stringa tra virgolette che supera il qualificatore, le unità di tempo rimanenti vengono troncate dall'intervallo. Nell'esempio seguente, un intervallo di 13 mesi diventa 1 anno e 1 mese, ma il restante 1 mese viene escluso a causa del qualificatore YEAR.
select INTERVAL '13 months' YEARintervaly2m --------------- 1 years 0 mons
Se si utilizza un qualificatore inferiore alla stringa di intervallo, vengono incluse le unità rimanenti.
select INTERVAL '13 months' MONTHintervaly2m --------------- 1 years 1 mons
Se si specifica una precisione nell'intervallo, il numero di cifre frazionarie viene troncato alla precisione specificata.
select INTERVAL '1.234567' SECOND (3)intervald2s -------------------------------- 0 days 0 hours 0 mins 1.235 secs
Se non si specifica una precisione, utilizza la precisione massima di 6. AWS Clean Rooms
select INTERVAL '1.23456789' SECONDintervald2s ----------------------------------- 0 days 0 hours 0 mins 1.234567 secs
L'esempio seguente mostra come creare un intervallo con intervalli.
select INTERVAL '2:2' MINUTE TO SECONDintervald2s ------------------------------ 0 days 0 hours 2 mins 2.0 secs
I qualificatori determinano le unità che state specificando. Ad esempio, anche se l'esempio seguente utilizza la stessa stringa tra virgolette '2:2' dell'esempio precedente, AWS Clean Rooms riconosce che utilizza unità di tempo diverse a causa del qualificatore.
select INTERVAL '2:2' HOUR TO MINUTEintervald2s ------------------------------ 0 days 2 hours 2 mins 0.0 secs
Sono supportate anche le abbreviazioni e i plurali di ciascuna unità. Ad esempio, 5s5 second, e 5 seconds sono intervalli equivalenti. Le unità supportate sono anni, mesi, ore, minuti e secondi.
select INTERVAL '5s' SECONDintervald2s ------------------------------ 0 days 0 hours 0 mins 5.0 secs
select INTERVAL '5 HOURS' HOURintervald2s ------------------------------ 0 days 5 hours 0 mins 0.0 secs
select INTERVAL '5 h' HOURintervald2s ------------------------------ 0 days 5 hours 0 mins 0.0 secs