T-SQL ha una funzione chiamata DATETIMEOFFSETFROMPARTS()
che ti consente di ottenere un datetimeoffset valore dalle varie parti separate di una data. In particolare, restituisce un datetimeoffset valore per la data e l'ora specificate e con gli offset e la precisione specificati.
Esempi di questa funzione di seguito.
Sintassi
La sintassi è questa:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Dove:
- I primi 7 argomenti sono espressioni intere che specificano quella particolare parte di data/ora.
- Il
hour_offset
argomento è un'espressione intera che specifica la parte dell'ora dell'offset del fuso orario. - Il
minute_offset
è un'espressione intera che specifica la parte dei minuti dell'offset del fuso orario. - La
precision
argomento è un valore letterale intero che specifica la precisione di datetimeoffset valore da restituire. Questo valore specifica effettivamente la scala (ovvero il numero di cifre a destra della cifra decimale).
Esempio
Ecco un esempio di utilizzo.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) AS Result;
Risultato:
Result ---------------------------------- 2021-05-10 23:35:29.0500 +12:30
Argomenti non validi
Devi assicurarti che tutti gli argomenti siano validi, altrimenti riceverai un errore. Ecco un esempio di fornitura di una parte dell'ora fuori intervallo (25). La parte dell'ora può essere solo compresa tra 0 e 24.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) AS Result;
Risultato:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
Numero di argomenti
È necessario fornire il numero corretto di argomenti (10). In caso contrario, riceverai un errore.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;
Risultato:
The datetimeoffsetfromparts function requires 10 argument(s).
Argomenti nulli
Se uno dei primi 9 argomenti è nullo, il risultato è NULL
:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) AS Result;
Risultato:
Result ---------------------------------- NULL
Tuttavia, se l'ultimo argomento (di precisione) è null, viene restituito un errore:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) AS Result;
Risultato:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.
Vedi anche DATETIME2FROMPARTS() Esempi in SQL Server (T-SQL) per la restituzione di un datetime2 valore (senza l'offset).