In SQL Server wordt de DATETIME2FROMPARTS()
functie werkt vergelijkbaar met de DATETIMEFROMPARTS()
functie, behalve dat het 8 argumenten accepteert en een datetime2 . teruggeeft waarde. De DATETIMEFROMPARTS()
functie daarentegen accepteert slechts 7 argumenten en retourneert een datetime waarde.
In principe geef je alle datum/tijd-delen op en deze functie retourneert een datetime2 waarde gebaseerd op de onderdelen die u levert.
Syntaxis
Ten eerste, hier is de syntaxis:
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )
Waarbij elk van de eerste 7 argumenten een geheel getal is dat dat deel van de datum aangeeft. Bijvoorbeeld year
is een geheel getal dat het jaargedeelte van de datum aangeeft.
Het 8e argument is een integer-expressie waarmee u de precisie van de geretourneerde waarde kunt definiëren. Deze waarde geeft de schaal aan (d.w.z. het aantal cijfers rechts van de komma).
Voorbeeld
Hier is een voorbeeld van gebruik:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;
Resultaat:
+--------------------------+ | Result | |--------------------------| | 2021-05-10 23:35:29.0500 | +--------------------------+
Ongeldige waarden
Alle argumenten moeten geldige waarden zijn. U kunt bijvoorbeeld geen maand van 13 of een minuutwaarde van 61 specificeren.
Hier is een voorbeeld waarbij ik een maandwaarde van 13 specificeer:
SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;
Resultaat:
Cannot construct data type datetime2, some of the arguments have values which are not valid.
Aantal argumenten
U moet ook het juiste aantal argumenten (8) opgeven:
SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;
Resultaat:
The datetime2fromparts function requires 8 argument(s).
Null-waarden
Als u een null-waarde opgeeft voor een van de eerste 7 argumenten, is het resultaat NULL:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;
Resultaat:
+----------+ | Result | |----------| | NULL | +----------+
Het verstrekken van een null-waarde voor het 8e argument (dat de precisie/schaal specificeert) resulteert echter in een fout:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;
Resultaat:
Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.