

 Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno 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à.

# Parti di data per funzioni di data e timestamp
<a name="r_Dateparts_for_datetime_functions"></a>

La tabella seguente identifica i nomi e le abbreviazioni di parti di data e parti di ora accettati come argomenti per le seguenti funzioni: 
+ DATEADD 
+ DATEDIFF 
+ DATE\_PART 
+ EXTRACT 


| Parte data o parte ora  | Abbreviazioni  | 
| --- | --- | 
| millennium, millennia  | mil, mils  | 
| century, centuries  | c, cent, cents  | 
| decade, decades  | dec, decs  | 
| epoch  | epoca (supportato da [EXTRACT](r_EXTRACT_function.md)) | 
| year, years  | y, yr, yrs  | 
| quarter, quarters  | qtr, qtrs  | 
| month, months  | mon, mons  | 
| week, weeks  | w  | 
| day of week  | dayofweek, dow, dw, weekday (supportate da [DATE\_PART](r_DATE_PART_function.md) e [Funzione EXTRACT](r_EXTRACT_function.md))<br />Restituisce un intero compreso tra 0 e 6, a partire da domenica.  La parte di data DOW si comporta in modo diverso rispetto alla parte di data day of week (D) utilizzata per stringhe in formato datetime. D si basa su numeri interi 1-7, dove domenica è 1. Per ulteriori informazioni, consultare [Stringhe di formato datetime](r_FORMAT_strings.md).   | 
| day of year  | dayofyear, doy, dy, yearday (supportato da [EXTRACT](r_EXTRACT_function.md)) | 
| day, days  | d  | 
| hour, hours  | h, hr, hrs  | 
| minute, minutes  | m, min, mins  | 
| second, seconds  | s, sec, secs  | 
| millisecond, milliseconds  | ms, msec, msecs, msecond, mseconds, millisec, millisecs, millisecon  | 
| microsecond, microseconds  | microsec, microsecs, microsecond, usecond, useconds, us, usec, usecs  | 
| timezone, timezone\_hour, timezone\_minute  | Supportato da [EXTRACT](r_EXTRACT_function.md) solo per il timestamp con fuso orario (TIMESTAMPTZ). | 

## Variazioni nei risultati con secondi, millisecondi e microsecondi
<a name="r_Dateparts_for_datetime_functions-variations-in-results"></a>

Differenze minori nei risultati delle query si hanno quando funzioni di data differenti specificano secondi, millisecondi o microsecondi come parti di data: 
+ La funzione EXTRACT restituisce interi solo per la parte di data specificata, ignorando parti di dati di livello superiore e inferiore. Se la parte di data specificata è secondi, millisecondi e microsecondi non sono inclusi nel risultato. Se la parte di data specificata è millisecondi, secondi e microsecondi non sono inclusi nel risultato. Se la parte di data specificata è microsecondi, secondi e millisecondi non sono inclusi nel risultato. 
+ La funzione DATE\_PART restituisce la parte di secondi completa del timestamp, indipendentemente dalla parte di data specificata, restituendo un valore decimale o un intero in base alle necessità. 

Ad esempio, confronta i risultati delle seguenti query: 

```
create table seconds(micro timestamp);

insert into seconds values('2009-09-21 11:10:03.189717');

select extract(sec from micro) from seconds;
               
date_part
-----------
3
               
select date_part(sec, micro) from seconds;
   
pgdate_part
-------------
3.189717
```

## Note su CENTURY, EPOCH, DECADE e MIL
<a name="r_Dateparts_for_datetime_functions-century"></a>

CENTURY o CENTURIES   
Amazon Redshift interpreta CENTURY con inizio nell'anno *\#\#\#1* e fine nell'anno `###0`:   

```
select extract (century from timestamp '2000-12-16 12:21:13');
date_part
-----------
20

select extract (century from timestamp '2001-12-16 12:21:13');
date_part
-----------
21
```

EPOCA   
L'implementazione di EPOCH in Amazon Redshift è relativa a 1970-01-01 00:00:00.000000 indipendentemente del fuso orario in cui si trova il cluster. È possibile che sia necessario compensare i risultati della differenza in ore a seconda del fuso orario in cui si trova il cluster.   
 L'esempio seguente mostra quanto segue:   

1.  Crea una tabella denominata EVENT\_EXAMPLE in funzione della tabella EVENT. Questo comando CREATE AS utilizza la funzione DATE\_PART per creare una colonna data (denominata PGDATE\_PART per impostazione predefinita) e archiviare il valore epoch per ogni evento. 

1.  Seleziona la colonna e il tipo di dati di EVENT\_EXAMPLE da PG\_TABLE\_DEF. 

1.  Seleziona EVENTNAME, STARTTIME e PGDATE\_PART dalla tabella EVENT\_EXAMPLE per visualizzare i differenti formati di data e ora. 

1.  Seleziona EVENTNAME e STARTTIME da EVENT EXAMPLE così com'è. Converte i valori epoch in PGDATE\_PART utilizzando un intervallo di un secondo per un timestamp senza fuso orario e restituisce i risultati in una colonna denominata CONVERTED\_TIMESTAMP. 

```
create table event_example
as select eventname, starttime, date_part(epoch, starttime) from event;

select "column", type from pg_table_def where tablename='event_example';

     column    |            type
---------------+-----------------------------
 eventname     | character varying(200)
 starttime     | timestamp without time zone
 pgdate_part   | double precision
(3 rows)
```

```
select eventname, starttime, pgdate_part from event_example;

   eventname          |      starttime      | pgdate_part
----------------------+---------------------+-------------
 Mamma Mia!           | 2008-01-01 20:00:00 |  1199217600
 Spring Awakening     | 2008-01-01 15:00:00 |  1199199600
 Nas                  | 2008-01-01 14:30:00 |  1199197800
 Hannah Montana       | 2008-01-01 19:30:00 |  1199215800
 K.D. Lang            | 2008-01-01 15:00:00 |  1199199600
 Spamalot             | 2008-01-02 20:00:00 |  1199304000
 Macbeth              | 2008-01-02 15:00:00 |  1199286000
 The Cherry Orchard   | 2008-01-02 14:30:00 |  1199284200
 Macbeth              | 2008-01-02 19:30:00 |  1199302200
 Demi Lovato          | 2008-01-02 19:30:00 |  1199302200

   
select eventname, 
starttime, 
timestamp with time zone 'epoch' + pgdate_part * interval '1 second' AS converted_timestamp 
from event_example;

       eventname      |      starttime      | converted_timestamp
----------------------+---------------------+---------------------
 Mamma Mia!           | 2008-01-01 20:00:00 | 2008-01-01 20:00:00
 Spring Awakening     | 2008-01-01 15:00:00 | 2008-01-01 15:00:00
 Nas                  | 2008-01-01 14:30:00 | 2008-01-01 14:30:00
 Hannah Montana       | 2008-01-01 19:30:00 | 2008-01-01 19:30:00
 K.D. Lang            | 2008-01-01 15:00:00 | 2008-01-01 15:00:00
 Spamalot             | 2008-01-02 20:00:00 | 2008-01-02 20:00:00
 Macbeth              | 2008-01-02 15:00:00 | 2008-01-02 15:00:00
 The Cherry Orchard   | 2008-01-02 14:30:00 | 2008-01-02 14:30:00
 Macbeth              | 2008-01-02 19:30:00 | 2008-01-02 19:30:00
 Demi Lovato          | 2008-01-02 19:30:00 | 2008-01-02 19:30:00
 ...
```

DECADE o DECADES   
Amazon Redshift interpreta DECADE o DECADES DATEPART in base al calendario comune. Ad esempio, poiché il calendario comune inizia dall'anno 1, il primo decennio (decennio 1) va da 0001-01-01 a 0009-12-31 e il secondo decennio (decennio 2) va da 0010-01-01 a 0019-12-31. Ad esempio, il decennio 201 va da 2000-01-01 a 2009-12-31:   

```
select extract(decade from timestamp '1999-02-16 20:38:40');
date_part
-----------
200

select extract(decade from timestamp '2000-02-16 20:38:40');
date_part
-----------
201

select extract(decade from timestamp '2010-02-16 20:38:40');
date_part
-----------
202
```

MIL o MILS   
Amazon Redshift interpreta MIL con inizio il primo giorno dell'anno *\#001* e fine l'ultimo giorno dell'anno `#000`:   

```
select extract (mil from timestamp '2000-12-16 12:21:13');
date_part
-----------
2

select extract (mil from timestamp '2001-12-16 12:21:13');
date_part
-----------
3
```