

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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 datetime
<a name="r_Datetime_types"></a>

**Topics**
+ [Storage e intervalli](#r_Datetime_types-storage-and-ranges)
+ [DATE](#r_Datetime_types-date)
+ [TIME](#r_Datetime_types-time)
+ [TIMETZ](#r_Datetime_types-timetz)
+ [TIMESTAMP](#r_Datetime_types-timestamp)
+ [TIMESTAMPTZ](#r_Datetime_types-timestamptz)
+ [Esempi con tipi datetime](r_Examples_with_datetime_types.md)
+ [Valori letterali di data, ora e timestamp](r_Date_and_time_literals.md)
+ [Tipi di dati e valori letterali relativi agli intervalli](r_interval_data_types.md)

I tipi di dati datetime comprendono DATE, TIME, TIMETZ, TIMESTAMP e TIMESTAMPTZ.

## Storage e intervalli
<a name="r_Datetime_types-storage-and-ranges"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_Datetime_types.html)

## DATE
<a name="r_Datetime_types-date"></a>

Utilizzare il tipo di dati DATE per memorizzare semplici date di calendario senza timestamp.

## TIME
<a name="r_Datetime_types-time"></a>

TIME è un alias di TIME WITHOUT TIME ZONE.

Utilizzare il tipo di dati TIME per memorizzare l'ora del giorno. 

Le colonne TIME memorizzano valori con un massimo di 6 cifre di precisione per frazioni di secondo.

Per impostazione predefinita, i valori TIME sono in formato UTC sia nelle tabelle dell'utente sia nelle tabelle di sistema di Amazon Redshift. 

## TIMETZ
<a name="r_Datetime_types-timetz"></a>

TIMETZ è un alias di TIME WITH TIME ZONE.

Utilizzare il tipo di dati TIMETZ per memorizzare l'ora del giorno con un fuso orario. 

Le colonne TIMETZ memorizzano valori con un massimo di 6 cifre di precisione per frazioni di secondo.

Per impostazione predefinita, i valori TIMETZ sono UTC sia nelle tabelle dell'utente sia nelle tabelle di sistema Amazon Redshift. 

## TIMESTAMP
<a name="r_Datetime_types-timestamp"></a>

TIMESTAMP è un alias di TIMESTAMP WITHOUT TIME ZONE.

Utilizzare il tipo di dati TIMESTAMP per memorizzare valori timestamp completi che comprendono la data e l'ora del giorno. 

Le colonne TIMESTAMP memorizzano valori fino a un massimo di 6 cifre di precisione per frazioni di secondo.

Se si inserisce una data in una colonna TIMESTAMP o una data con un valore timestamp parziale, il valore viene implicitamente convertito in un valore timestamp completo. Questo valore timestamp completo ha valori predefiniti (00) per le ore, i minuti e i secondi mancanti. I valori di fuso orario nelle stringhe input vengono ignorati.

Per impostazione predefinita, i valori TIMESTAMP sono UTC sia nelle tabelle dell'utente sia nelle tabelle di sistema Amazon Redshift. 

## TIMESTAMPTZ
<a name="r_Datetime_types-timestamptz"></a>

TIMESTAMPTZ è un alias di TIMESTAMP WITH TIME ZONE.

Utilizzare il tipo di dati TIMESTAMPTZ per immettere valori timestamp completi che comprendono la data, l'ora del giorno e il fuso orario. Quando un valore di input include un fuso orario, Amazon Redshift usa il fuso orario per convertire il valore in formato UTC e memorizza il valore UTC.

Per visualizzare un elenco dei nomi di fuso orario supportati, utilizzare il comando seguente. 

```
select pg_timezone_names();
```

 Per visualizzare un elenco delle abbreviazioni di fuso orario supportate, utilizzare il comando seguente. 

```
select pg_timezone_abbrevs();
```

È possibile trovare informazioni attuali sui fusi orari anche nel [database dei fusi orari IANA](https://www.iana.org/time-zones).

La tabella seguente fornisce esempi di formati di fusi orari. 


| Formato | Esempio | 
| --- | --- | 
|  gg mmm hh:mi:ss aaaa tz  |  17 Dic 07:37:16 1997 PST   | 
|  mm/dd/yyyyhh:mi:ss.ss tz  |  12/17/1997 07:37:16.00 PST  | 
|  mm/dd/yyyyhh:mi:ss.ss tz  |  12/17/1997 07:37:16.00 US/Pacific  | 
|  yyyy-mm-dd hh:mi:ss\$1/-tz  |  1997-12-17 07:37:16-08   | 
| dd.mm.yyyy hh:mi:ss tz |  17.12.1997 07:37:16.00 PST  | 

Le colonne TIMESTAMPTZ memorizzano valori fino a un massimo di 6 cifre di precisione per frazioni di secondo.

Se si inserisce una data in una colonna TIMESTAMPTZ o una data con un valore timestamp parziale, il valore viene implicitamente convertito in un valore timestamp completo. Questo valore timestamp completo ha valori predefiniti (00) per le ore, i minuti e i secondi mancanti.

I valori TIMESTAMPTZ sono in formato UTC nelle tabelle utente.

# Esempi con tipi datetime
<a name="r_Examples_with_datetime_types"></a>

Di seguito sono riportati degli esempi per lavorare con tipi datetime supportati da Amazon Redshift.

## Esempi di data
<a name="r_Examples_with_datetime_types-date-examples"></a>

Nei seguenti esempi vengono inserite date con formati diversi e viene visualizzato il risultato. 

```
create table datetable (start_date date, end_date date);
```

```
insert into datetable values ('2008-06-01','2008-12-31');

insert into datetable values ('Jun 1,2008','20081231');
```

```
select * from datetable order by 1;

start_date |  end_date
-----------------------
2008-06-01 | 2008-12-31
2008-06-01 | 2008-12-31
```

Se si inserisce un valore timestamp in una colonna DATE, la parte dell'ora viene ignorata e viene caricata solo la data.

## Esempi di orari
<a name="r_Examples_with_datetime_types-time-examples"></a>

Negli esempi seguenti vengono inseriti valori TIME e TIMETZ con formati diversi e viene visualizzato il risultato.

```
create table timetable (start_time time, end_time timetz);
```

```
insert into timetable values ('19:11:19','20:41:19 UTC');
insert into timetable values ('191119', '204119 UTC');
```

```
select * from timetable order by 1;
start_time |  end_time
------------------------
 19:11:19  | 20:41:19+00
 19:11:19  | 20:41:19+00
```

## Esempi timestamp
<a name="r_Examples_with_datetime_types-timestamp-examples"></a>

Se inserisci una data in una colonna TIMESTAMP o TIMESTAMPTZ, l'ora diventa mezzanotte per impostazione predefinita. Ad esempio, se inserisci il valore letterale `20081231`, il valore memorizzato è `2008-12-31 00:00:00`. 

Per modificare il fuso orario per la sessione corrente, usa il comando [SET](r_SET.md) per impostare il parametro di configurazione [timezone](r_timezone_config.md).

L'esempio seguente inserisce i timestamp con formati diversi e visualizza la tabella risultante. 

```
create table tstamp(timeofday timestamp, timeofdaytz timestamptz);

insert into tstamp values('Jun 1,2008  09:59:59', 'Jun 1,2008 09:59:59 EST' );
insert into tstamp values('Dec 31,2008 18:20','Dec 31,2008 18:20');
insert into tstamp values('Jun 1,2008  09:59:59 EST', 'Jun 1,2008 09:59:59');

SELECT * FROM tstamp;

+---------------------+------------------------+
|      timeofday      |      timeofdaytz       |
+---------------------+------------------------+
| 2008-06-01 09:59:59 | 2008-06-01 14:59:59+00 |
| 2008-12-31 18:20:00 | 2008-12-31 18:20:00+00 |
| 2008-06-01 09:59:59 | 2008-06-01 09:59:59+00 |
+---------------------+------------------------+
```

# Valori letterali di data, ora e timestamp
<a name="r_Date_and_time_literals"></a>

Individuare le regole per lavorare con valori letterali data, ora e timestamp supportati da Amazon Redshift. 

## Date:
<a name="r_Date_and_time_literals-dates"></a>

Le seguenti date di input sono tutti esempi validi di valori letterali di data per il tipo di data DATE che puoi caricare nelle tabelle di Amazon Redshift. Si assume che la modalità `MDY DateStyle` di default sia in vigore. Questa modalità indica che il valore del mese precede il valore del giorno in stringhe come `1999-01-08` e `01/02/00`. 

**Nota**  
È necessario che un valore letterale data o timestamp quando viene caricato in una tabella sia racchiuso tra virgolette.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_Date_and_time_literals.html)

## Volte
<a name="r_Date_and_time_literals-times"></a>

Le seguenti ore di input sono tutti esempi validi di valori letterali di ora per i tipi di dati TIME e TIMETZ che puoi caricare nelle tabelle di Amazon Redshift. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_Date_and_time_literals.html)

## Timestamp
<a name="r_Date_and_time_literals-timestamps"></a>

I seguenti timestamp di input sono tutti esempi validi di valori letterali di ora per i tipi di dati TIMESTAMP e TIMESTAMPTZ che puoi caricare nelle tabelle di Amazon Redshift. È possibile combinare tutti i valori letterali di data validi con i seguenti valori letterali di ora. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_Date_and_time_literals.html)

## Valori datetime speciali
<a name="r_Date_and_time_literals-special-datetime-values"></a>

È possibile usare i valori speciali seguenti come valori letterali datetime e come argomenti per le funzioni della data. Richiedono virgolette singole e vengono convertiti in valori timestamp regolari durante l'elaborazione delle query. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_Date_and_time_literals.html)

I seguenti esempi mostrano come `now` e `today` lavorano insieme alla funzione DATEADD.

```
select dateadd(day,1,'today');

date_add
---------------------
2009-11-17 00:00:00
(1 row)

select dateadd(day,1,'now');

date_add
----------------------------
2009-11-17 10:45:32.021394
(1 row)
```

# Tipi di dati e valori letterali relativi agli intervalli
<a name="r_interval_data_types"></a>

Puoi utilizzare un tipo di dati di intervallo per memorizzare le durate di tempo in unità quali `seconds`, `minutes`, `hours`, `days`, `months` e `years`. I tipi di dati e i valori letterali relativi agli intervalli possono essere utilizzati nei calcoli data/ora, ad esempio aggiungendo intervalli a date e timestamp, sommando gli intervalli e sottraendo un intervallo da una data o un timestamp. I valori letterali relativi agli intervalli possono essere utilizzati come valori per intervallare le colonne dei tipi di dati in una tabella. 

## Sintassi del tipo di dati di intervallo
<a name="r_interval_data_types-syntax"></a>

Come specificare un tipo di dati di intervallo per memorizzare una durata di tempo in anni e mesi:

```
INTERVAL year_to_month_qualifier
```

Come specificare un tipo di dati di intervallo per memorizzare una durata in giorni, ore, minuti e secondi:

```
INTERVAL day_to_second_qualifier [ (fractional_precision) ]
```

## Sintassi dell’intervallo letterale
<a name="r_interval_data_types-syntax-literal"></a>

Come specificare un intervallo letterale per definire una durata di tempo in anni e mesi:

```
INTERVAL quoted-string year_to_month_qualifier
```

Come 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)
<a name="r_interval_data_types-arguments"></a>

 *quoted-string*   
Specifica un valore numerico positivo o negativo che indica una quantità e l’unità data/ora come stringa di input. Se *quoted-string* contiene solo un valore numerico, Amazon Redshift determina le unità da *year\$1to\$1month\$1qualifier* o *day\$1to\$1second\$1qualifier*. Ad esempio, `'23' MONTH` rappresenta `1 year 11 months`, `'-2' DAY` rappresenta `-2 days 0 hours 0 minutes 0.0 seconds`, `'1-2' MONTH` rappresenta `1 year 2 months` e `'13 day 1 hour 1 minute 1.123 seconds' SECOND` rappresenta `13 days 1 hour 1 minute 1.123 seconds`. Per ulteriori informazioni sui formati di output di un intervallo, consulta [Stili di intervallo](#r_interval_data_types-interval-styles).

 *year\$1to\$1month\$1qualifier*   
Specifica l’intervallo di valori. Se utilizzi un qualificatore e crei un intervallo con unità di tempo più piccole del qualificatore, Amazon Redshift tronca e scarta le parti più piccole dell’intervallo. I valori validi per *year\$1to\$1month\$1qualifier* sono:  
+ `YEAR`
+ `MONTH`
+ `YEAR TO MONTH`

 *day\$1to\$1second\$1qualifier*   
Specifica l’intervallo di valori. Se utilizzi un qualificatore e crei un intervallo con unità di tempo più piccole del qualificatore, Amazon Redshift tronca e scarta le parti più piccole dell’intervallo. I valori validi per *day\$1to\$1second\$1qualifier* 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 in base al componente INTERVAL più piccolo specificato. Ad esempio, quando utilizzi un qualificatore MINUTE, Amazon Redshift elimina le unità di tempo inferiori a MINUTE.  

```
select INTERVAL '1 day 1 hour 1 minute 1.123 seconds' MINUTE
```
Il valore risultante viene troncato in `'1 day 01:01:00'`.

 *fractional\$1precision*   
Parametro facoltativo che specifica il numero di cifre frazionarie consentite nell’intervallo. L’argomento *fractional\$1precision* deve essere specificato solo se l’intervallo contiene SECOND. Ad esempio, `SECOND(3)` crea un intervallo che prevede 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 YEAR TO MONTH e DAY TO SECOND. Per ulteriori informazioni, consulta [interval\$1forbid\$1composite\$1literals](r_interval_forbid_composite_literals.md).

## Aritmetica dell’intervallo
<a name="r_interval_data_types-arithmetic"></a>

Puoi utilizzare i 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 entrambi i risultati `date` e `timestamp` lo fanno in base alla più piccola unità di tempo coinvolta nell’equazione. Ad esempio, quando aggiungi un valore `interval` a un valore `date`, il risultato è un valore `date`, se si tratta di un intervallo YEAR TO MONTH e un timestamp se si tratta di un intervallo DAY TO SECOND. 

Le operazioni in cui il primo operando è un valore `interval` producono i seguenti risultati per il secondo operando specificato:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_interval_data_types.html)

Le operazioni in cui il primo operando è un `date` producono i seguenti risultati per il secondo operando specificato:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_interval_data_types.html)

Le operazioni in cui il primo operando è un `timestamp` producono i seguenti risultati per il secondo operando specificato:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_interval_data_types.html)

## Stili di intervallo
<a name="r_interval_data_types-interval-styles"></a>

Puoi utilizzare il comando SQL [SET](r_SET.md) per modificare il formato di visualizzazione dell’output dei valori di intervallo. Quando utilizzi il tipo di dati di intervallo in SQL, trasmettilo in testo per visualizzare lo stile di intervallo previsto, ad esempio `YEAR TO MONTH::text`. I valori disponibili per IMPOSTARE il valore `IntervalStyle` sono:
+ `postgres`: segue lo stile PostgreSQL. Questa è l’impostazione predefinita.
+ `postgres_verbose`: segue lo stile verboso PostgreSQL.
+ `sql_standard`: segue lo stile dei valori letterali dell’intervallo 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 di intervallo `postgres`. Ogni valore numerico può essere negativo.

```
'<numeric> <unit> [, <numeric> <unit> ...]'
```

```
select INTERVAL '1-2' YEAR TO MONTH::text 

varchar
---------------
1 year 2 mons
```

```
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::text

varchar
------------------
1 day 02:03:04.5678
```

**formato di output postgres\$1verbose**

La sintassi di postgres\$1verbose è simile a quella di postgres, ma gli output di postgres\$1verbose contengono anche l’unità di tempo.

```
'[@] <numeric> <unit> [, <numeric> <unit> ...] [direction]'
```

```
select INTERVAL '1-2' YEAR TO MONTH::text 

varchar
-----------------
@ 1 year 2 mons
```

```
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::text

varchar
---------------------------
@ 1 day 2 hours 3 mins 4.56 secs
```

**formato di output sql\$1standard**

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::text 
  
varchar   
-------
1-2
```

```
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::text 

varchar
---------------
1 2:03:04.5678
```

## Esempi di tipi di dati relativi agli intervalli
<a name="r_interval_data_types-examples"></a>

Negli esempi seguenti viene illustrato 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 relativi agli intervalli
<a name="r_interval_data_types_literals-examples"></a>

Gli esempi seguenti vengono eseguiti con lo stile di intervallo impostato su `postgres`.

L’esempio seguente mostra come creare un valore letterale di INTERVAL di 1 anno.

```
select INTERVAL '1' YEAR 

intervaly2m
---------------
1 years 0 mons
```

Se si specifica un argomento *quoted-string* 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 mese restante viene escluso a causa del qualificatore YEAR.

```
select INTERVAL '13 months' YEAR

intervaly2m
---------------
1 years 0 mons
```

Se utilizzi un qualificatore inferiore alla stringa di intervallo, vengono incluse le unità rimanenti.

```
select INTERVAL '13 months' MONTH

intervaly2m
---------------
1 years 1 mons
```

Se si specifica una precisione nell’intervallo, il numero di cifre frazionarie viene troncato in base alla precisione specificata.

```
select INTERVAL '1.234567' SECOND (3)

intervald2s
--------------------------------
0 days 0 hours 0 mins 1.235 secs
```

Se non specifichi una precisione, Amazon Redshift utilizza la precisione massima di 6.

```
select INTERVAL '1.23456789' SECOND

intervald2s
-----------------------------------
0 days 0 hours 0 mins 1.234567 secs
```

L’esempio seguente dimostra come creare un intervallo di valori.

```
select INTERVAL '2:2' MINUTE TO SECOND

intervald2s
------------------------------
0 days 0 hours 2 mins 2.0 secs
```

I qualificatori determinano le unità che specificate. Ad esempio, anche se nell’esempio seguente utilizzi lo stesso argomento *quoted-string* di '2:2' dell’esempio precedente, Amazon Redshift riconosce che usa unità di tempo diverse a causa del qualificatore.

```
select INTERVAL '2:2' HOUR TO MINUTE

intervald2s
------------------------------
0 days 2 hours 2 mins 0.0 secs
```

Sono supportati anche le abbreviazioni e i plurali di ciascuna unità. Ad esempio, `5s`, `5 second` e `5 seconds` sono intervalli equivalenti. Le unità supportate sono anni, mesi, ore, minuti e secondi.

```
select INTERVAL '5s' SECOND

intervald2s
------------------------------
0 days 0 hours 0 mins 5.0 secs
```

```
select INTERVAL '5 HOURS' HOUR

intervald2s
------------------------------
0 days 5 hours 0 mins 0.0 secs
```

```
select INTERVAL '5 h' HOUR

intervald2s
------------------------------
0 days 5 hours 0 mins 0.0 secs
```

# Esempi di valori letterali relativi agli intervalli senza sintassi dei qualificatori
<a name="r_interval_literals"></a>

**Nota**  
Negli esempi seguenti viene illustrato l’utilizzo di un valore letterale relativo agli intervalli senza un qualificatore `YEAR TO MONTH` o `DAY TO SECOND`. Per informazioni sull’utilizzo del valore letterale relativo agli intervalli consigliato con un qualificatore, consulta [Tipi di dati e valori letterali relativi agli intervalli](r_interval_data_types.md).

Usa un valore letterale di intervallo per identificare periodi di tempo specifici, come `12 hours` o `6 months`. È possibile usare questi valori letterali di intervallo in condizioni e calcoli che comprendono espressioni datetime. 

 Un valore letterale relativo agli intervalli viene espresso come una combinazione della parola chiave INTERVAL con una quantità numerica e una parte di data supportata, ad esempio `INTERVAL '7 days'` o `INTERVAL '59 minutes'`. È possibile collegare diverse quantità e unità per formare un intervallo più preciso; ad esempio `INTERVAL '7 days, 3 hours, 59 minutes'`. Anche abbreviazioni e plurali di ciascuna unità sono supportati; ad esempio: `5 s`, `5 second` e `5 seconds` sono intervalli equivalenti.

Se non si specifica una parte data, il valore di intervallo rappresenterà i secondi. È possibile specificare il valore di quantità come una frazione (ad esempio: `0.5 days`).

Gli esempi seguenti mostrano una serie di calcoli con valori di intervallo diversi.

Quanto segue aggiunge 1 secondo alla data specificata.

```
select caldate + interval '1 second' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 00:00:01
(1 row)
```

Quanto segue aggiunge 1 minuto alla data specificata.

```
select caldate + interval '1 minute' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 00:01:00
(1 row)
```

Vengono aggiunte 3 ore e 35 minuti alla data specificata.

```
select caldate + interval '3 hours, 35 minutes' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 03:35:00
(1 row)
```

Quanto segue aggiunge 52 settimane alla data specificata.

```
select caldate + interval '52 weeks' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2009-12-30 00:00:00
(1 row)
```

Vengono aggiunti 1 settimana, 1 ora, 1 minuto e 1 secondo alla data specificata.

```
select caldate + interval '1w, 1h, 1m, 1s' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2009-01-07 01:01:01
(1 row)
```

Di seguito vengono aggiunte 12 ore (mezza giornata) alla data specificata.

```
select caldate + interval '0.5 days' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 12:00:00
(1 row)
```

Vengono sottratti 4 mesi dal 15 febbraio 2023 e il risultato è il 15 ottobre 2022.

```
select date '2023-02-15' - interval '4 months';

?column?
---------------------
2022-10-15 00:00:00
```

Vengono sottratti 4 mesi dal 31 marzo 2023 e il risultato è il 30 novembre 2022. Il calcolo considera il numero di giorni in un mese.

```
select date '2023-03-31' - interval '4 months';

?column?
---------------------
2022-11-30 00:00:00
```