DATETIMEOFFSETFROMPARTS (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

Restituisce un valore di tipo datetimeoffset per gli argomenti date e time. Il valore restituito ha una precisione specificata dall'argomento precision e una differenza specificata dagli argomenti di offset.

Convenzioni di sintassi Transact-SQL

Sintassi

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

year
Espressione Integer che specifica un anno.

month
Espressione Integer che specifica un mese.

day
Espressione Integer che specifica un giorno.

hour
Espressione Integer che specifica le ore.

minute
Espressione Integer che specifica i minuti.

seconds
Espressione Integer che specifica i secondi.

fractions
Espressione Integer che specifica un valore per i secondi frazionari.

hour_offset
Espressione Integer che specifica la parte di ora della differenza di fuso orario.

minute_offset
Espressione Integer che specifica la parte di minuto della differenza di fuso orario.

precision
Valore letterale Integer che specifica la precisione del valore datetimeoffset che verrà restituito da DATETIMEOFFSETFROMPARTS.

Tipi restituiti

datetimeoffset(precision)

Osservazioni:

DATETIMEOFFSETFROMPARTS restituisce un tipo di dati datetimeoffset completamente inizializzato. Gli argomenti di offset rappresentano la differenza di fuso orario. Per gli argomenti di offset omessi, DATETIMEOFFSETFROMPARTS presuppone una differenza di fuso orario pari a 00:00, ovvero nessuna differenza di fuso orario. Per gli argomenti di offset specificati, DATETIMEOFFSETFROMPARTS prevede per entrambi gli argomenti valori entrambi positivi o entrambi negativi. Se minute_offset ha un valore e hour_offset non ha valori, DATETIMEOFFSETFROMPARTS genererà un errore. DATETIMEOFFSETFROMPARTS genererà un errore se gli altri argomenti hanno valori non validi. Se almeno un argomento obbligatorio ha un valore NULL, DATETIMEOFFSETFROMPARTS restituirà NULL. Se tuttavia l'argomento precision ha un valore NULL, DATETIMEOFFSETFROMPARTS genererà un errore.

L'argomento fractions dipende dall'argomento precision. Ad esempio, per un valore di precision pari a 7, ogni frazione rappresenta 100 nanosecondi, mentre per precision pari a 3, ogni frazione rappresenta un millisecondo. Per un valore di precision pari a zero, anche il valore di fractions deve essere zero. In caso contrario, DATETIMEOFFSETFROMPARTS genererà un errore.

Questa funzione può essere eseguita in modalità remota in server con SQL Server 2012 (11.x) e versioni successive, ma non in server con versioni precedenti a SQL Server 2012 (11.x).

Esempi

R. Esempio senza frazioni di un secondo

SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;  

Questo è il set di risultati.

Result  
----------------------------------
2010-12-31 14:23:23.0000000 +12:00  
  
(1 row(s) affected)  

B. Esempio con frazioni di un secondo

Questo esempio illustra l'uso dei parametri fractions e precision:

  1. Se fractions ha valore 5 e precision ha valore 1, il valore di fractions corrisponde a 5/10 di secondo.

  2. Se fractions ha valore 50 e precision ha valore 2, il valore di fractions corrisponde a 50/100 di secondo.

  3. Se fractions ha valore 500 e precision ha valore 3, il valore di fractions corrisponde a 500/1000 di secondo.

SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );  
GO  

Questo è il set di risultati.

----------------------------------  
2011-08-15 14:30:00.5 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.50 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.500 +12:30  
  
(1 row(s) affected)  

Vedi anche

datetimeoffset (Transact-SQL)
AT TIME ZONE (Transact-SQL)