I SQL Server, DATETIME2FROMPARTS()
funktionen fungerer på samme måde som DATETIMEFROMPARTS()
funktion, bortset fra at den accepterer 8 argumenter og returnerer en datetime2 værdi. DATETIMEFROMPARTS()
funktion på den anden side, accepterer kun 7 argumenter, og den returnerer en datetime værdi.
Grundlæggende angiver du alle dato/klokkeslæt dele, og denne funktion vil returnere en datetime2 værdi baseret på de dele, du leverer.
Syntaks
Først her er syntaksen:
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )
Hvor hvert af de første 7 argumenter er et heltalsudtryk, der angiver den del af datoen. For eksempel year
er et heltal, der angiver årsdelen af datoen.
Det 8. argument er et heltalsudtryk, der giver dig mulighed for at definere præcisionen af returværdien. Denne værdi angiver skalaen (dvs. antallet af cifre til højre for decimalen).
Eksempel
Her er et eksempel på brug:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;
Resultat:
+--------------------------+ | Result | |--------------------------| | 2021-05-10 23:35:29.0500 | +--------------------------+
Ugyldige værdier
Alle argumenter skal være gyldige værdier. Du kan f.eks. ikke angive en måned på 13 eller en minutværdi på 61.
Her er et eksempel, hvor jeg angiver en månedsværdi på 13:
SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;
Resultat:
Cannot construct data type datetime2, some of the arguments have values which are not valid.
Antal argumenter
Du skal også angive det korrekte antal argumenter (8):
SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;
Resultat:
The datetime2fromparts function requires 8 argument(s).
Nul-værdier
Hvis du angiver en nulværdi for et af de første 7 argumenter, er resultatet NULL:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Angivelse af en nulværdi for det 8. argument (som specificerer præcisionen/skalaen) resulterer dog i en fejl:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;
Resultat:
Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.