Du kan använda T-SQL DATEFROMPARTS()
funktion i SQL Server för att returnera ett datum värde som mappas till datumdelarna som du tillhandahåller som heltalsuttryck.
Så här fungerar det är att du anger tre värden (ett för varje år , månad och dag värden), och SQL Server returnerar ett datum värde baserat på de värden du tillhandahåller.
Exempel nedan.
Syntax
Först, här är syntaxen:
DATEFROMPARTS ( year, month, day )
Så här kan varje argument vara:
year
- Ett heltalsuttryck som anger ett år.
month
- Ett heltalsuttryck som anger en månad, från 1 till 12.
day
- Ett heltalsuttryck som anger en dag.
Exempel
Här är ett exempel på användning:
SELECT DATEFROMPARTS( 2021, 05, 10 ) AS Result;
Resultat:
+------------+ | Result | |------------| | 2021-05-10 | +------------+
Ogiltiga värden
Du måste se till att datumdelarna tillhandahålls i rätt ordning, annars kan du få ett fel. Ännu värre, du kanske inte får ett felmeddelande (om dagdelen är 12 eller mindre), och därför kan du missa ett stort problem med hur datumet översätts.
Här är ett exempel på ett ogiltigt värde:
SELECT DATEFROMPARTS( 2021, 30, 10 ) AS Result;
Resultat:
Cannot construct data type date, some of the arguments have values which are not valid.
Detta beror på att vi angav 30 som månadsdel. Den här delen accepterar endast värden mellan 1 och 12.
Nullvärden
Om något av argumenten är nollvärden blir resultatet NULL
.
Här är ett exempel med ett nullvärde:
SELECT DATEFROMPARTS( 2021, NULL, 10 ) AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Därför är det förmodligen självklart (men jag säger det ändå), att om alla argument är nollvärden blir resultatet NULL
:
SELECT DATEFROMPARTS( NULL, NULL, NULL ) AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+