T-SQL har en funktion kaldet DATETIMEOFFSETFROMPARTS()
der giver dig mulighed for at få en datetime offset værdi fra de forskellige separate dele af en dato. Specifikt returnerer det en datotidsforskydning værdi for den angivne dato og klokkeslæt og med de angivne forskydninger og præcision.
Eksempler på denne funktion nedenfor.
Syntaks
Syntaksen ser sådan ud:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Hvor:
- De første 7 argumenter er heltalsudtryk, der angiver den pågældende dato/tidsdel.
hour_offset
argument er et heltalsudtryk, der angiver timedelen af tidszoneforskydningen.minute_offset
er et heltalsudtryk, der angiver minutdelen af tidszoneforskydningen.precision
argument er et heltal, der angiver nøjagtigheden af datotidsforskydningen værdi, der skal returneres. Denne værdi angiver faktisk skalaen (dvs. antallet af cifre til højre for decimalen).
Eksempel
Her er et eksempel på brug.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) AS Result;
Resultat:
Result ---------------------------------- 2021-05-10 23:35:29.0500 +12:30
Ugyldige argumenter
Du skal sikre dig, at alle argumenter er gyldige, ellers får du en fejl. Her er et eksempel på levering af en timedel uden for rækkevidde (25). Timedelen kan kun være mellem 0 og 24.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) AS Result;
Resultat:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
Antal argumenter
Du skal angive det korrekte antal argumenter (10). Hvis du ikke gør det, får du en fejlmeddelelse.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;
Resultat:
The datetimeoffsetfromparts function requires 10 argument(s).
Nul-argumenter
Hvis nogle af de første 9 argumenter er nul, er resultatet NULL
:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) AS Result;
Resultat:
Result ---------------------------------- NULL
Men hvis det sidste (præcision) argument er null, returneres en fejl:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) AS Result;
Resultat:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.
Se også DATETIME2FROMPARTS() eksempler i SQL Server (T-SQL) for at returnere en datetime2 værdi (uden forskydning).